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
.blogeDSL 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
| Dimension | BLOGE | Temporal |
|---|---|---|
| Deployment model | Embedded library inside your Java service | Separate workflow platform and control plane |
| Authoring style | Java API + external DSL | Code-first workflow APIs |
| Runtime scope | Bounded orchestration, service composition, DSL-driven flows | Durable distributed workflows with platform-managed execution |
| Adoption path | Start as a library, add modules when needed | Adopt a dedicated workflow runtime from the start |
| Best fit | Teams that want orchestration in the app layer with low platform overhead | Teams 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
| Dimension | BLOGE | Spring Batch |
|---|---|---|
| Primary model | DAG orchestration with dependencies and branching | Job/step-oriented batch pipelines |
| Concurrency model | Ready-node scheduling on virtual threads | Batch step execution and chunk processing |
| Long-running waits | First-class suspend/resume and durable waits through optional modules | Usually modeled outside the batch job model |
| DSL support | External .bloge language plus Java API | Configuration and Java APIs, but no dedicated orchestration DSL |
| Best fit | Service orchestration, routing, approvals, API composition, event-driven waits | Scheduled 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
| Module | Purpose |
|---|---|
bloge-core | Graph model, scheduler, resilience, fluent API, and extension points |
bloge-dsl | Lexer, parser, compiler, and DSL execution pipeline |
bloge-durable | Runtime stores for checkpoints, waits, work items, routing, archive, and governance |
bloge-spring | Spring Boot starter, operator discovery, graph loading, and actuator endpoints |
bloge-metrics-otel | Metrics, tracing, logging listeners, and telemetry context propagation |
bloge-studio | Browser-based graph authoring and .bloge export |
bloge-lsp + bloge-vscode | Editor intelligence, completion, hover, diagnostics, and formatting |
bloge-maven-plugin + bloge-lint | Metadata 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
- Follow the guided tutorial track in Head First BLOGE
- Start with Getting Started
- Understand the runtime in Operator & Graph
- Learn the language in DSL Overview
- Explore production add-ons in Durable Flows and Observability