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, business-contract verification, 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 business-contract verification.

5. It can verify business-approved outcomes ​

The Preview bloge-verification module executes declared Scenarios against the real graph and customer operators under explicit Policy and Fixture controls. It is a cross-cutting test and governance layer, not another production runtime layer. Verdict, evidence trust, and decision capability remain separate so a local PASS cannot be mistaken for release certification.

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-lsp + bloge-vscodeEditor intelligence, completion, hover, diagnostics, and formatting
bloge-maven-plugin + bloge-lintMetadata export and static analysis for DSL assets
bloge-verificationPreview Scenario/Policy/Fixture verification, reports, source-bound evidence, and claim assessment

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
  • verify selected business-owner-approved outcomes against the same graph and operators used by the application

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 ​