Module Matrix
The 0.9.8-RC1 Java reactor uses group id com.leanowtech.bloge. Use ${bloge.version} in application POMs unless a release-specific page gives an exact migration coordinate. The tables below separate publishable Java modules from the independent language/tooling workspace and from the runnable verification story.
Java reactor: runtime and execution contracts
| Module | Role | Add when |
|---|---|---|
bloge-core | Graph model, GraphEngine, operators, resilience, saga, schema, streaming, and timers | Always |
bloge-execution-control | Framework-neutral control plans, typed doubles, indexed matching, and consumption reports | Tests need deterministic call-site behavior or fail-closed control |
bloge-capability-processor | Optional compile-time inference of capability contracts from typed Java operators and functions | Java builds should publish richer capability metadata |
bloge-runtime-spi | Durable runtime facade, timer runtime SPI, lease/audit/task support APIs | Building advanced durable runtime integrations |
bloge-test | MockOperator, GraphTestRunner, and DslTestHelper | Testing graph execution or DSL compilation at the engine level |
bloge-verification | Preview business-contract verification over real BLOGE graphs using Scenario, Policy, Fixture, controlled execution, reports, and evidence | Customer-authored business correctness checks or evidence gates |
bloge-verification is a test-scoped verification/governance layer, not a runtime extension that every production service must install. See BLOGE Verify for its contracts and boundaries.
Java reactor: DSL, functions, and extensions
| Module | Role | Add when |
|---|---|---|
bloge-dsl | Lexer, parser, compiler, GraphLoader, and DSL extension SPI | Loading .bloge files |
bloge-dsl-caffeine | Optional Caffeine-backed GraphCache | DSL compilation needs TTL or size-bounded caching |
bloge-functions-crypto | Crypto, hash, encoding functions, and SecretProvider SPI | DSL expressions need secure helper functions |
bloge-session-ext | Session/phase/round runtime and DSL extension | Conversational or multi-round flows |
bloge-session-durable | Durable session checkpoints, recovery, and graph-hash migration | Sessions must survive restarts |
bloge-state-ext | Event-driven state-machine runtime and DSL extension | Workflows are better expressed as states and transitions |
bloge-state-durable | Durable state-machine checkpoints and recovery | State-machine instances must survive restarts |
bloge-agent-ext | Agent DSL, loop operators, tools, and memory strategies | LLM agents are graph participants |
bloge-script | Sandboxed Groovy script node support | Rules change faster than deployment cycles |
Java reactor: durability, operators, and integrations
| Module | Role | Add when |
|---|---|---|
bloge-durable | Store contracts, routing, archive, and in-memory durable reference stores | Flows need persistence or resumability |
bloge-durable-mybatis | MyBatis stores and Flyway migrations for H2, PostgreSQL, and MySQL | Durable state needs a database backend |
bloge-durable-codec | Checkpoint codecs and deserialization diagnostics | Persisting checkpoint payloads beyond a simple in-memory flow |
bloge-event-journal | Append-only execution event stream and retention helpers | Timelines, replay-safe history, or operations feeds are required |
bloge-common-operators | Maintained HTTP, DB, messaging, AI, transform, notification, approval, storage, crypto, validation, and dynamic operators | You want a shared operator catalog |
bloge-spring | Spring Boot auto-configuration, @BlogeOperator, graph loading, and actuator endpoints | Running BLOGE inside Spring Boot |
bloge-spring-web | Durable REST APIs and embedded /bloge-console SPA | You need a Spring MVC operations surface |
bloge-metrics-otel | Micrometer, OpenTelemetry, logging listeners, and trace propagation | You need production telemetry |
bloge-dispatch-kafka | Kafka dispatch bridge for durable work items | Durable work crosses process boundaries through Kafka |
bloge-camunda-bridge | Camunda external-task bridge | Integrating BLOGE operators with Camunda external tasks |
bloge-bpmn-transformer | BPMN 2.0 XML to BLOGE DSL and Graph translation | Migrating or auditing BPMN process definitions |
Java reactor: build-time quality and example application
| Module | Role | Add when |
|---|---|---|
bloge-maven-plugin | Build-time capability export, DSL validation, schema checks, and lint integration | CI should validate or publish graph metadata |
bloge-lint | Static analysis and quality scoring for .bloge files | DSL authoring needs quality gates |
bloge-starter-loan-approval | Runnable Spring Boot + durable loan-approval golden path with BLOGE Verify cases | You want the first end-to-end business verification walkthrough |
The starter is a runnable example application, not a foundational dependency for every service.
Independent language and tooling workspace
These directories are part of the broader BLOGE workspace but are not Maven reactor artifacts:
| Component | Role |
|---|---|
bloge-lang | TypeScript parser/compiler/codegen mirror |
bloge-conformance | Shared parser, lexer, lint, compiler-semantic, and codegen fixtures/golden data |
bloge-lsp | Language Server Protocol implementation |
bloge-vscode | VS Code extension |
bloge-intellij | IntelliJ IDEA plugin |
Minimal dependency sets
| Scenario | Dependencies |
|---|---|
| In-memory Java graph | bloge-core |
| DSL graph in a Java service | bloge-core, bloge-dsl |
| Spring Boot DSL service | bloge-core, bloge-dsl, bloge-spring |
| Durable Spring service | bloge-core, bloge-dsl, bloge-spring, bloge-durable, bloge-durable-mybatis, bloge-durable-codec |
| Engine-level graph tests | bloge-core, bloge-test |
| Business contract verification | bloge-verification plus the real graph/runtime modules used by the application; keep it test-scoped |
| Durable business verification | Business contract verification plus bloge-durable, bloge-durable-codec, and the selected durable test harness |
| Session workflow | bloge-core, bloge-dsl, bloge-session-ext |
| Agent workflow | bloge-core, bloge-dsl, bloge-agent-ext, usually bloge-common-operators |