There is an industry trend where businesses are moving towards autonomous product teams. These teams aim to be end-to-end responsible for the product they are building and maintaining. With the help of Continuous Delivery, teams have faster feedback cycles in which they can probe if a feature work. To achieve end-to-end team autonomy, companies move towards a microservices architecture to successfully inspect and adapt. To be successful with a microservices architecture, we need to use the Domain-driven design bounded context pattern. However, only by implementing a bounded context in code, we can experience if the model is useful.
In this session, we take you on a journey, where we explain how we implemented a complex software system within a bounded context. We start coding to explore and quickly iterate over our naive domain model with outside-in Test-Driven Development (TDD). With outside-in TDD, we grow our model guided by coarse-grain tests without the need of using mocks inside our domain. We eventually explain how leveraging the ports and adapter architecture helps you keep the domain model protected from technical complexity and will demonstrate an example of how to split your domain model towards microservices. You will leave the session knowing how to do design by coding with a modern outside-in TDD approach.