Domain-Driven Design: What are Bounded Contexts and why should you define them?
Large complex systems tend to be difficult to maintain. They never start out like that. They start small, sweet and innocent. However, the system evolves. Features are build on top of features. The world around it changes. Functional requirements change as business changes, but also the organisation, the teams and the people. When a system evolves into a monolithic style system, it becomes very difficult and expensive to adapt it to the altering world. By building the system as several smaller delimited systems that work together, you can create a system that better reflects the business and is more flexible to change.