I am interested what would be the ideal way to scale Microservices in DDD world?
In case of the following scenario, where Sales context is hosted as a microservice on a different host then Support context, if sales context exceeds hardware limitations, would you:
a) scale vertically (increase the resources of the server)
b) scale horizontally (adding more servers)
c) split microservice so for example Sales Context is now (just a generic solution)
- Sales Teritory Context (Customer, Product, Teritory, Sales Person) and
- Sales Teritory Oportunities Context (Teritory, Opportunity, Pipeline)
As an alternative, would it be a good approach to use all three techniques but in a specific order ie. so first split microservice (software scale), then scale horizontally (easier hardware scale in terms of maintain application), and then scale vertically (more difficult hardware scale).
I know each scenario is specific, but I would like to know what technique do microservices and DDD encourage?