Ironflow Event Sourcing Flow

Ironflow Event Sourcing Flow A data-flow diagram generated by Archify. 01 / Append 02 / Entity stream 03 / Publish 04 / Project 05 / Consume Client append · streams.append() · 01 / Append · expectedVersion Client append streams.append() expectedVersion Version conflict · nothing written · 02 / Entity stream · read, then retry Version conflict nothing written read, then retry Entity stream · append-only events · 02 / Entity stream · v1..v4 Entity stream append-only events v1..v4 NATS publish · events by name, PUBSUB · 03 / Publish NATS publish events by name, PUBSUB Upcaster registry · SDK, on function input · 02 / Entity stream · v1 to v3 Upcaster registry SDK, on function input v1 to v3 Managed projection · pure reducer · 04 / Project Managed projection pure reducer External projection · cursor, no state · 04 / Project External projection cursor, no state Read model · materialized state · 05 / Consume Read model materialized state Side effects · HTTP, writes, alerts · 05 / Consume Side effects HTTP, writes, alerts version mismatch version matches publish via outbox function receives event consume by name consume by name reduce into state act on each event Legend primary data policy / PII async batch data store data flow