Many software architectures may benefit from the introduction of (Distributed) Domain-Driven Design and Command Query (Responsibility) Separation. No matter whether you are maintaining large legacy software systems or start a new microservices platform as greenfield approach, one always has to think about the domain language and service design. This talk shows how to get started with introducing bounded contexts, domain models, and implementing CQ(R)S where it makes most sense while trying to avoid the technical debt trap, e.g. misconceptions and fallacies. Thus, we will cover Event Storming, Context Map Patterns and the Building Blocks of DDD with dedicated real-life code examples. At the end one will be able to apply many DDD principles and will have learned how to tailor systems according to their domain – effectively and efficiently while using modern technology standards and working with a DevOps approach.