While there are plenty of introductory articles and tutorials talking about Event Sourcing (ES), Command Query Responsibility Segregation (CQRS), Functions as a Service (“serverless”), message queues and handlers, and various other paradigms and methodologies, it can sometimes be difficult to conceptualize how it all pieces together. This presentation is going to fill in those missing parts by taking the classic “to-do list” application and over-engineer it by imagining additional requirements and complications. As each challenge is presented, we’ll explore the strengths of the paradigm we’re adding, what additional considerations this adds, and what trade-offs we’re accepting.
The classic “to-do list” is a simple CRUD application working with an MVC framework on a web server that persists data to a relational database.
This presentation will help you answer the following questions:
- What about historical states?
- What about network instability, active user spikes, inconsistent workload?
- How do I completely separate the front-end team (HTML/CSS/JS) from the back-end team (API/DB)?
- What about documentation of code, business processes, and developer on-boarding?
- How do I handle reporting? Live analysis? Metrics?
- How do I integrate this application with completely separate systems that use different languages, frameworks, and teams?
Other topics that will be covered include JAMstack, service/event buses, documentation (OpenAPI), testing (unit & integration), and deployment.