Old events must still decode
Historical records remain useful only while consumers can translate their versions. A deployment can break recovery without changing newly produced data.¶
Schema evolution ensures that the consumer can translate it to a familiar version.¶
Failure it prevents
A new consumer cannot decode already-accepted work.¶
Our Effect 4.0.0 reading
Schema.decodeUnknownEffect validates a representation. Define supported versions and transformations; the decoder does not choose the compatibility policy.¶
Source: packages/effect/src/Schema.ts, packages/effect/src/persistence/PersistedQueue.ts.¶
How to check
Keep old payload fixtures. Decode and restore them with the proposed consumer before removing old representations. This check is our proposal. The books do not prescribe it.¶
Continue with Shared schemas need a transition period7, Replay needs stable inputs9.¶
Connect this to the existing rat-stack guidance25.¶
Use the durability skill for the full review. Return to the durability index34.¶
Sources
- Bellemare, Adam. Building Event-Driven Microservices: Leveraging Organizational Data at Scale. O’Reilly, 2020.. O’Reilly. Chapter 3 Communication and Data Contracts; Chapter 6 Deterministic Stream Processing; Chapter 7 Stateful Streaming; Chapter 9 Microservices Using Function-as-a-Service; Chapter 14 Supportive Tooling. Accessed 2026-10-23.
- Ambler, Scott W.; Sadalage, Pramod J. Refactoring Databases: Evolutionary Database Design. Addison-Wesley, 2006.. Addison-Wesley. §3.11 What You Have Learned (transition period); Chapter 4 Deploying into Production. Accessed 2026-10-23.
- Effect contributors. Effect 4.0.0. Schema.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.
- Effect contributors. Effect 4.0.0. persistence/PersistedQueue.ts. Effect-TS. Pinned source for our Effect mapping, not a claim from the book. Accessed 2026-10-23.
Last changed 2026-10-23 in 58dc623. Source on GitHub. Change log.
Linked from
- Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
Old events must still decode — Retained data needs compatibility rules before recovery depends on it.
- Change log. What changed in the files served here, newest first.
Old events must still decode — new page: docs(lore): land the durability wiki pages and bibliography
- Durability bibliography. Books, checked short quotations, source limits, and Effect mapping provenance.
Schema evolution ensures that the consumer can translate it to a familiar version.¶
- Durability starts with a recovery record. A reading order for storage, replay, worker ownership, overload, and recovery tests.
Old events must still decode: Retained data needs compatibility rules before recovery depends on it.¶
- Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
- Rat Stack lore | rat-stack. Short, source-grounded notes on the ideas and decisions behind rat-stack.
Old events must still decode — Retained data needs compatibility rules before recovery depends on it.
- Replay needs stable inputs. Historical processing must not silently depend on today’s clock or external decisions.
Continue with Old events must still decode, Pure cores reduce timeline coupling.¶
- Shared schemas need a transition period. Keep old and new representations usable while consumers migrate.
Continue with Old events must still decode, Recovery needs model tests.¶
- Source change history (log.md). The generated change log as Markdown.
Old events must still decode — new page: docs(lore): land the durability wiki pages and bibliography