Surviving Long Event History
summary
NRK runs event streams 13–15 years long and replaying them is practical if events are versioned, small and schema-based. Uses Protobuf over JSON for compact, stable schemas; avoids polymorphic serialization and giant payloads (subtitles should be file references, not inline). Applies a hybrid snapshots + replay strategy for performance, stores outgoing messages with outbox pattern, and runs annual in-store migrations to prune obsolete origins and fix corrupted events.
AI-written summary · about
chapters (17)
- 0:00🚀 Introduction: The Importance of Long Event History in Event Sourcing
- 2:00Event Sourcing and Why It Works for Long History Survival
- 4:00Key Benefits of Long Event History and Why You Should Keep Events Long
- 6:00Common Challenges: Performance, Storage, and GDPR Concerns
- 8:00The Hybrid Approach: Combining Event Replay with Snapshots for Performance
- 10:00Best Practices for Event Versioning and Data Ownership
- 12:00Separating Commands, Persistent, and Transit Events
- 14:00Avoiding Overgeneralized Event Types: Why Specificity Matters
- 16:00The Dangers of Large Event Payloads and How to Handle Them
- 18:00Event Serialization: Choosing the Right Format for Long-Term Survival
- 20:00Migrating Events: How to Prepare for Event Migration
- 22:00Protobuf vs. JSON: Why Protobuf Is Better for Long-Term Systems
- 24:00Handling Broken Backward Compatibility and Event Cleanup
- 26:00Using Event Versioning vs. Creating New Events
- 28:00How to Manage Event Migrations in Real-World Scenarios
- 31:00Key Takeaways for Ensuring Long Event History Survival
- 34:00Closing Thoughts: Event Sourcing and Building Systems for Decades
related talks
01h 03mSurviving Long Event History
43mEvent Sourcing dealing with an eventful past
49mEvents... And what next?
51mThings I wish I knew before I started with event sourcing
42mSlow Event Sourcing reprojections? Just make them faster!
52mUse the Source, Luke: High-fidelity history with event-sourced data
48mEvent Sourcing - what could possibly go wrong?
51mHow do we approach event streaming at Revolut?
