Skip to main content
Version: 0.1.0-alpha.3 (alpha)

Ingress and trigger architecture

Capsules never own listeners, queue-consumer loops, or timer threads. Shared ingress adapters and trigger sources translate external activity into activation envelopes.

The completed Phase 2 node exposes direct invocation RPC on its authenticated loopback listener. Phase 3 plans HTTP ingress, event delivery and bounded local service calls. Durable workflow timers belong to Phase 6; blob-trigger adapters also remain future work. The trigger lifecycle below is an architectural contract, not a current background service. See the roadmap. See the invocation service for available calls.

Ingress adapters​

An adapter terminates one protocol, authenticates or extracts a principal, maps protocol metadata to an invocation target, applies payload limits, and converts the activation outcome back into a protocol response.

Planned protocol classes are HTTP, direct RPC, events, queues, timers, blobs, and internal calls. Future implementations may support multiple concrete products behind one class.

Trigger lifecycle​

trigger resource
→ shared source adapter
→ source position / acknowledgement state
→ trigger event
→ activation mapping
→ activation dispatch
→ source acknowledgement

Acknowledgement occurs only according to the trigger's delivery contract. Trigger events carry stable event and idempotency identifiers so duplicate delivery is safe where component logic supports it. A broker's durable consumer position does not provide an LSF state/effect transaction or exactly-once external execution.

Planned durable timers​

A timer is durable metadata interpreted by a shared timer source. Waiting does not retain an activation, cell, component instance, or thread.

Backpressure​

Ingress must reject, defer, or pause sources when admission queues are full. It must not create new service-specific workers to absorb overload.