Image: Pixabay Breaking your application down into components can be a useful approach to a "divide and conquer" methodology. Assigning specific behaviour to a component and then defining interfaces for other components to access it allows you to develop a service driven architecture. I'm in the process of decomposing a monolithic application into services that will eventually become standalone micro-services. Part of the task ahead lies in determining the service boundaries, which are analogous to software components for my micro-service application. I want components to be modular to allow them to be developed and deployed as independently as possible. I'm using the approach suggested by Eric Evans in his book on domain driven design where he describes the concept of "bounded contexts". I like to think of a bounded context as being for domain models as a namespace is for classes. These contexts are spaces where a domain mo...