ADR-0004: Internal Broker
Status
Section titled “Status”Accepted.
Context
Section titled “Context”MQTT ingestion should not directly couple Network Server message receipt to full telemetry processing.
The platform needs buffering, retry, monitoring, and failure isolation.
Decision
Section titled “Decision”Use NATS JetStream as the V1 internal durable stream between MQTT ingestion and telemetry processing.
The mqtt-ingestion-worker publishes accepted raw ingestion events to NATS
JetStream. The telemetry-worker consumes those events asynchronously.
Alternatives
Section titled “Alternatives”RabbitMQ
Section titled “RabbitMQ”Well-known queue broker with strong routing and work queue capabilities.
Powerful event streaming system but operationally heavier than needed for V1.
No Internal Broker
Section titled “No Internal Broker”Simpler but increases risk of message loss and tight coupling.
No separate consequence list is maintained for this ADR.