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
- Suggested queuing
Continue reading →