The Order service and the Billing service — owned by two different teams — both read and write the same shared database. A schema change by one team breaks the other, and the database is a single point of failure for both. Decouple their data ownership.
A shared database couples services: any schema change forces cross-team coordination, and the DB is a shared single point of failure. Database-per-service gives each service exclusive ownership of its data, so teams deploy independently. Cross-service reads go through APIs or events. The trade-off is distributed consistency and some controlled data duplication.
Evaluation criteria and weights will be revealed after you submit your solution. This ensures a fair assessment of your design skills.
Draw your architecture diagram, explain your design decisions, and get AI-powered feedback.
For the best experience, design challenges on a desktop or tablet — drawing the architecture on a phone is hard.