Chapter 10. Event sourcing: a functional approach to persistence

This chapter covers

  • Thinking functionally about persisted data
  • Event sourcing concepts and implementation
  • Architecture of event-sourced systems

In the last chapter, you saw that in FP we avoid mutating state, especially global state. Did I mention that the database is also state, so it too should be immutable? What? Yes, didn’t you see this one coming? A database is, conceptually, just a data structure. Whether it’s stored in memory or on disk is ultimately just an implementation detail.

You saw how functional data structures, although immutable, can “evolve.” That is, you can create new “states” or new “views” of any given structure, which are built upon, but don’t alter, ...

Get Functional Programming in C# now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.