Skip to content

Capabilities and boundaries

Choose a feature for its actual contract, rather than treating all distributed operations as interchangeable calls.

Capability What it provides Boundary to design for
Remote references Interface proxies, callbacks and returned object references A reference can expire or become unavailable
Discovery and refresh Candidate lookup and opt-in replacement of live bindings Discovery is not an atomic reservation of future availability
Managed annotations Generated metadata, wiring and installed host policy selection An annotation does not provision a backend or confer permission
Replicated resource state Durable decisions within configured consensus groups Progress requires the configured quorum and healthy storage
Queues Receipt/generation-based delivery and controlled acknowledgements Delivery is distinct from arbitrary external effect atomicity
Durable jobs Claimed execution, progress, checkpoints and takeover Recovery resumes explicit state, not a serialized Java stack
Sagas Durable decisions and compensating steps Compensation is application logic; uncertain effects need reconciliation
Resource transactions Atomic decisions for participating replicated resources Arbitrary databases and HTTP services are not implicit participants
JDBC inbox/outbox Same-Connection database boundaries and recoverable delivery Database commit and queue acknowledgement remain separate steps
Fencing Rejection of stale ownership at cooperating effect boundaries An external system must actually enforce the fence

Transport deployment boundary

The built-in gRPC and RMI providers currently advertise loopback addresses with OS-selected ports. They support communication between JVMs on the same machine. Their public constructors do not expose an advertised-host setting. Invoking application services across machines therefore requires an explicitly integrated transport provider or host solution that supplies routable endpoints. Do not invent a configuration property to change the built-in providers' addresses.

The network bootstrap registry and native resource groups have their own explicit address configuration; configuring them does not rewrite application transport references. See transports and network deployment.

J7M is in pre-release development. This manual describes the current implementation, not a promised roadmap. It makes no general claim of exactly-once external effects, certification, automatic cross-system ACID transactions or operating-system isolation. Performance depends on workload, deployment and configured limits; capacity guidance explains how to measure your own profile.

Patterns · Security · Failure semantics