Package pt.unl.fct.di.novasys.babel2.core
@NullMarked
package pt.unl.fct.di.novasys.babel2.core
Core runtime, protocol lifecycle, executor models, and protocol extensions for Babel 2.
This package contains the central orchestrator and protocol interfaces for the Babel 2 framework:
Runtime & Bootstrap
Babel— The core runtime managing channel lifecycles, protocol registrations, and event routing.BabelBootstrap— Fluent builder configuring the runtime, node identity, cryptographic key pairs, channel composition, and protocol registrations.
Protocol Abstractions & Execution
BabelProtocol— Core interface implemented by all protocols, receiving initialization, channel events, and annotated event/message handlers.BabelProtocolHolder— Manages the thread execution model for an individual protocol:DedicatedExecutorProtocolHolder— Runs the protocol on a single dedicated thread.SharedExecutorProtocolHolder— Shares an executor thread pool across multiple protocols.NettyExecutorProtocolHolder— Executes protocol handlers directly within Netty event loops.
Node Identity & Extensions
BabelNode— Abstract identity interface representing nodes in the distributed system.IPBabelNodeIdentity— Specialization identifying nodes by channel name and socket address.ProtocolExtensionandProtocolExtensionFactory— Modular extension system enabling composable capabilities (Broadcast, Membership, Resolver, Signed Messaging).
-
ClassDescriptionAbstract base implementation of
BabelProtocolHolderproviding handler discovery via reflection, dynamic lambda generation, and dispatch routines.TheBabelclass serves as the central orchestration engine for the Babel 2 runtime.Builder class for configuring and creating aBabelruntime instance.Opaque handle that represents a remote Babel process reachable through aBabelChannel.Defines the lifecycle and configuration requirements for a protocol within the Babel framework.BabelProtocolFactory<T extends BabelProtocol>Factory interface for creatingBabelProtocolinstances from aPropertiesconfiguration object.Wraps aBabelProtocoland manages its execution environment, event delivery, and dispatching of messages and events.Factory interface for creating instances ofBabelProtocolHolder.ABabelProtocolHolderimplementation that runs the protocol on a dedicated, single-threaded executor using a lock-freeMpscArrayQueue.Factory for creatingDedicatedExecutorProtocolHolderinstances.ABabelNodeidentity implementation based on an IP socket address and channel type.Protocol holder implementation executing protocol event handlers on a NettyEventLoopGroup.Factory for creatingNettyExecutorProtocolHolderinstances backed by a NettyEventLoopGroup.ProtocolExtension<T extends BabelProtocol>A pluggable cross-cutting extension that augments aBabelProtocolwith additional event handling capabilities.Factory interface for creatingProtocolExtensioninstances.ABabelProtocolHolderimplementation that schedules event queue draining on a shared thread pool executor.Factory for creatingSharedExecutorProtocolHolderinstances that share a common fixed thread pool executor.