Ironflow Event Ingest Flow

Ironflow Event Ingest Flow A workflow diagram generated by Archify. 01 / External publisher 02 / Ironflow server EX / Redelivery Into the stream Consume and validate Ack outcome External system · publishes to NATS · External publisher › Into the stream External system publishes to NATS EVENTS stream · LimitsPolicy, 7 days · Ironflow server › Into the stream · kept after ack EVENTS stream LimitsPolicy, 7 days kept after ack EventRouter · durable, explicit ack · Ironflow server › Consume and validate · filter: events.ingest.> EventRouter durable, explicit ack filter: events.ingest.> Validate · unmarshal, name, schema · Ironflow server › Consume and validate Validate unmarshal, name, schema Insert + dispatch · same path as emit() · Ironflow server › Ack outcome Insert + dispatch same path as emit() Nak · 5 deliveries max · Redelivery › Consume and validate Nak 5 deliveries max Term · discarded, no retry · Redelivery › Ack outcome Term discarded, no retry consume events.ingest.{name} redeliver immediately transient error each delivery never becomes valid Ack Legend Server step Validation NATS stream Publisher / outcome

The consumer contract

  • • Durable consumer "event-router", filter ironflow.*.*.events.ingest.>
  • • Nak retries immediately. AckWait 30s applies to missing acks; MaxDeliver 5
  • • EVENTS is LimitsPolicy, so an acked message stays until 7d or 512MB

Who can actually do this

  • • Publishing here needs rights on the internal ironflow.> subject space
  • • No in-tree producer writes events.ingest.> — this is an operator door
  • • Term covers unmarshal failure, a rejected event name and schema validation alike