The document discusses three choices for dealing with complex problems in software architecture:
1. Using an ORM can lead to confused domain models
2. Using a "fancy database" like a graph or search database can lead to the wrong data models
3. Storing data in simple tables can result in data loss
It then presents event sourcing as an alternative approach that avoids these issues by having an event store that appends immutable events, and generates views of current state from replaying the events. This allows for scaling, minimal code, and avoiding data loss or complex models.
47. Credits
Special thanks to all the people who made and released
these awesome resources for free:
✘ Presentation template by SlidesCarnival
✘ Photographs by Unsplash
Hinweis der Redaktion
In short it is the problems that we create for ourselves when we make choices about how we build software
In short it is the problems that we create for ourselves when we make choices about how we build software
And there are typically 3 that we make over and over that adds to the complexity we create for ourselves
We stick with this state model and assume we have done it in sql. And assume that we have some more features on our application
inpedence missmatch between objects
The problem is all databases suck at something
a single datamodel will rarely work
This represents state
Don’t give data loss away give example first
Perception of facts vs actual facts
Do you have update or delete statement
How do you decided when to loose data (When do you know? When does your client know)
List of events gives a clue
To make a change, insert a correcting event
Easily scale
Build read models as needed
Understand Data Loss
Make Informed Decisions
Use the Right Tools
Stop Building Complexity into your Problems