Skip to content

What is BLOGE?

BLOGE is a Java-first orchestration engine for teams that want to model business logic as a directed acyclic graph (DAG) without adopting a separate workflow platform. It lets you define operator graphs in code or in a standalone .bloge DSL, execute them on virtual threads, and attach durability, observability, and tooling only when you need them.

Positioning

BLOGE is designed for bounded orchestration inside your own services:

  • service-to-service aggregation and API composition
  • fulfillment, approval, and routing workflows
  • long-running waits and human-in-the-loop steps
  • session-based conversational or voice-agent orchestration
  • developer-owned workflow assets that should live next to application code

Instead of shipping a hosted control plane or a heavyweight application server, BLOGE gives you a compact runtime library and a set of optional modules for production concerns.

Why teams choose BLOGE

1. It stays embeddable

The core engine runs on java.base alone. That keeps orchestration close to the application that owns the business logic and avoids introducing a second operational platform just to model a workflow.

2. It exposes graph shape directly

Dependencies, branch points, retries, timeouts, and fallbacks are part of the graph definition. Teams can reason about workflow behavior from one place instead of reconstructing it from nested service code.

3. It supports two authoring styles

  • Fluent Java API when type-safe composition inside the same codebase matters most
  • .bloge DSL when workflow definitions should be reviewed, linted, generated, or edited independently from Java compilation

4. It grows into production

BLOGE ships optional modules for Spring Boot integration, durable runtime stores, OpenTelemetry and Micrometer instrumentation, BPMN translation, editor tooling, linting, testing helpers, and a browser-based visual studio.

How BLOGE compares

BLOGE vs Temporal

DimensionBLOGETemporal
Deployment modelEmbedded library inside your Java serviceSeparate workflow platform and control plane
Authoring styleJava API + external DSLCode-first workflow APIs
Runtime scopeBounded orchestration, service composition, DSL-driven flowsDurable distributed workflows with platform-managed execution
Adoption pathStart as a library, add modules when neededAdopt a dedicated workflow runtime from the start
Best fitTeams that want orchestration in the app layer with low platform overheadTeams standardizing on a central workflow platform

BLOGE is not trying to replace Temporal's hosted workflow-runtime model. It serves teams that want workflow clarity and durability without handing orchestration over to a separate system.

BLOGE vs Spring Batch

DimensionBLOGESpring Batch
Primary modelDAG orchestration with dependencies and branchingJob/step-oriented batch pipelines
Concurrency modelReady-node scheduling on virtual threadsBatch step execution and chunk processing
Long-running waitsFirst-class suspend/resume and durable waits through optional modulesUsually modeled outside the batch job model
DSL supportExternal .bloge language plus Java APIConfiguration and Java APIs, but no dedicated orchestration DSL
Best fitService orchestration, routing, approvals, API composition, event-driven waitsScheduled ETL, chunked processing, classic batch jobs

BLOGE works well when the problem is not “process a dataset in steps,” but “coordinate multiple capabilities, decisions, and waits as one explicit business graph.”

Architecture at a glance

ModulePurpose
bloge-coreGraph model, scheduler, resilience, fluent API, and extension points
bloge-dslLexer, parser, compiler, and DSL execution pipeline
bloge-durableRuntime stores for checkpoints, waits, work items, routing, archive, and governance
bloge-springSpring Boot starter, operator discovery, graph loading, and actuator endpoints
bloge-metrics-otelMetrics, tracing, logging listeners, and telemetry context propagation
bloge-studioBrowser-based graph authoring and .bloge export
bloge-lsp + bloge-vscodeEditor intelligence, completion, hover, diagnostics, and formatting
bloge-maven-plugin + bloge-lintMetadata export and static analysis for DSL assets

When BLOGE is a strong fit

Choose BLOGE when you want to:

  • keep orchestration definitions in the same repository as your service code
  • make concurrency and branch behavior visible to developers and reviewers
  • mix code-defined operators with externally authored graph definitions
  • add durability and observability incrementally instead of committing to a platform upfront
  • power domain workflows such as order handling, loan approval, BFF aggregation, or voice-agent routing

When to look elsewhere

BLOGE is not the best match when you need:

  • a centrally hosted workflow platform with multi-language workers and platform-managed execution
  • a replacement for large BPM suites with full business-user modeling governance
  • purely sequential batch processing where Spring Batch is already the right abstraction

Next steps