Files
ObsidianJournal/Training/Advanced Distributed Systems/Advanced Distributed Systems Design - Module 7 - Service Decomposition.md

17 lines
999 B
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Indications that you need to sub-divide a service into components:
- Quality of service requirements
-
- are there large variations in response times
- ...in transaction processing times
- The business might treat categories of customer differently
- We should actually sub-divide our sales service into RegularCustomers component and StrategicCustomers component
- These things can start to show up when the business starts asking you to treat something (like a customer) in little different ways throughout the system.  You end up with a bunch of if statements asking the same question.  
-
- Ask the business if this is really a new business component
- Fork the code base and let them grow apart.  This is liberating as you don't have to maintain both component requirements in one code base.
- More examples
-
- Airlines - business vs economy class
- Shipping - frozen goods vs regular toilet paper
- Billing - charging credit cards vs invoicing