Java Public Interface Formal Contract¶
Java contract table of contents | Language interface table of contents
Java contract table of contents
This directory fixes the public signature of the Java server package, organized per feature. Common behavior is owned by the server common spec.
- Common Runtime
- Configuration And Host
- Channel Messaging
- Spot
- Actor
- STREAM Session
- Location And Maintenance
- Location Object Query Types
- Monitoring
Java and Kotlin share one JVM service runtime. A Kotlin coroutine wrapper isn't put in the Java contract, and the Kotlin contract separately specifies whether it reuses a Java type or provides a Kotlin-only extension.
Public API Structure¶
A Java application configures host and topology in
ZLinkFrameworkOptions, and processes messages through the Channel/
Spot/Actor/STREAM client and handler contracts. ZLinkFrameworkRuntime's
mode-specified Relocate and Shutdown each own object relocation and
host termination, and a partial termination operation taking a MeshName
isn't provided. The Location provider provides read, version-conditional
atomic batch, and bounded snapshot scan on the opaque record the
framework creates. The Relocation provider stores an immutable blob at a
reference the framework issued in advance.
ZLinkTopologyState represents the availability of a registered
topology, and ZLinkFrameworkRuntimeState represents the whole host's
state. A Channel call only takes a process-local ChannelName. The first
argument of sendToNode(String, RoutingId, Object), which directly
specifies a node, is
MeshName.
ActorId and User/Instance SpotId are global logical IDs. A regular
message only takes the ID and resolves current
authority, and mutation
and session bind take an ActorRef or SpotRef. A
MeshNode's object role is
closed to None, Client, Server, and Client/Server require a
Location Store.
The type, constructor, method, record component, enum value, and
generic bound are owned by the per-feature documents above. Internal
Core/bindings types and runtime.internal types aren't exposed in the
application public signature. The Spring starter only provides the
public bean's type, singleton lifetime, and identity as contract. The
concrete type of auto-configuration classes, bean factory methods, and
lifecycle adapters isn't included in the per-language public interface.
The valid range of public generation, revision, epoch, and sequence
ordinal is a positive long, i.e. 1..Long.MAX_VALUE. On reaching the
maximum value, the framework treats it as terminal exhaustion, without
wrap or value reuse. 0 is only used when the relevant contract
explicitly specifies it to represent a not-yet-determined value.
Java contract table of contents | Language interface table of contents