Overview
Syllabus
Intro
Traditional application architecture
Obstacle to frequent deployments
Overloads your IDE and container
Obstacle to scaling development
Requires long-term commitment to a technology stack
Limitations of a single relational database
Apply the scale cube
Use a microservice architecture
Use NoSQL databases
Different modules use different types of databases
Update two entities in a NoSQL database
Cassandra main table index table
Event-based architecture to the rescue
Eventually consistent money transfer transfer Money
Update and publish using 2PC
Use data store as message queue
Persists events NOT current state
Replay events to recreate state
Event store implementations
Optimizing using snapshots
Aggregate traits
Account - command processing
Aggregate type classes/implicits
Business benefits of event
Technical benefits of event
Drawbacks of event sourcing
Strategic design: identify sub- domains
Strategic design: define microservices
Decide inter-service communication mechanisms
Use the familiar building blocks of DDD
Designing domain events
The anatomy of a microservice
Asynchronous Spring MVC controller
Handling events published by Accounts
Command Query Responsibility Segregation (CQRS)
Query-side microservices
Benefits and drawbacks of
Summary
Taught by
ChariotSolutions