People are shocked at how this can be true. Here I’ll show you:
User profile frontend accepts birthdate, posts date to backend for frontend
BFF updates db, emits Kafka message
Birthday service consumes message, updates own db, emits message
Cake service reads message, updates own db, emits message
Baking service reads message, bakes a cake, puts location in the db, emits message
Delivery service reads message, calls baking service to pick up the cake, calls user service to get the user’s address, emits message
Drone dispatch service reads message, collects cake, delivers to user, updates db, emits message
All services consume message and update themselves
Kafka/SQS bill at the end of the month: $1MM 💸💸💸
This is how “add a field to collect the user’s birthdate” becomes tickets for 6 teams.
This isn’t even just a big tech problem. I’ve seen two teams of six developers unnecessarily break up a monolith into a bunch of services after reading Domain Driven Design and trying to find a problem in search of a solution.
overheard at a big tech sprint planning meeting:
> isn't that feature just a new datepicker?
> it's a new datepicker that involves 4 microservices