Evolving CRUD (part 2)
Serving content at scale without complexity
Command Querying Responsibility Segregation #
Martin Fowler and Udi Dahan have in the past described this approach at length. This is obviously not a new concept and what follows is only a possible implementation of it.
A fancy name that hides a simple concept: read traffic (GET) has different requirements compared to the write traffic (POST/PUT/DELETE) and should be handled possibly by different systems.
This is by far not a new concept. Already in production with big players but never standardised.
This design splits read and write requests according to the following philosophy:
Read requests (GET) #
- Redis based for high 100k tps
- Uses advanced data structures to model data and indexes
- A proper noSQL schema design from the grounds up
Write requests (POST/UPDATE/DELETE) #
- Data ingestion is happens in a reliable queue
Continue reading →