Timeliness ≠ Integrity: Splitting “consistency” in Two ACID “consistency” conflates two things · event-based dataflow systems decouple them ACID consistency (the overloaded word) up-to-date? uncorrupted? Timeliness — users see up-to-date state linearizability (CAP sense) = strongest form read-after-write = weaker form violation → TEMPORARY: wait + retry fixes it stale read heals by itself (eventual consistency) e.g. card tx missing 24h from statement: annoying, but normal Integrity — no corruption, no loss no loss, no contradictions, derivation correct index must reflect the table (missing = useless) violation → PERMANENT: explicit check + repair e.g. balance ≠ sum of txs, money disappearing: catastrophic the slogan timeliness violations are allowed under eventual consistency; integrity violations are perpetual inconsistency timeliness in dataflow no guarantee by default (async consumers) a client CAN wait for its own output event e.g. outgoing-payment / declined event …but the balance check never waits on it notification is decoupled from the effect integrity in dataflow — 4 mechanisms ① write = ONE atomic message (event sourcing) ② deterministic derivation functions ③ client request ID thru all stages (e2e dedup) ④ immutable msgs + reprocessing (bug recovery) = effectively-once without 2PC / XA Verdict preserve integrity without distributed transactions → comparable correctness, better performance + robustness legend — amber: the overloaded word · teal/blue: the two meanings · banner: the slogan · bottom: how dataflow delivers each