Software Architecture: Domain-Driven Design
1h 20mIntermediate2019-09-18
Authors

Allen Holub
Software Architect, Agile Transformation Consultant
Course details
It's tough to be agile if you're working with a system that can't handle rapid change. Domain-driven design (DDD)—one of the most effective architectural approaches for both agile environments in general and microservices in particular—can help you build systems that can stand up to change. In this course, Allen Holub provides programmers, software architects, business analysts, and product managers/owners with an overview of this essential architectural process, demonstrating how to use DDD to develop a microservice or other domain-focused system. Alan goes over the basics of DDD (and how it fits with agile), microservices, and bounded contexts and entities. Plus, he compares reactive and declarative systems and details how to approach an event storming session.
Learning objectives
How DDD differs from other architectural approaches
How DDD fits with agile
Advantages of microservices
Bounded contexts and entities
Reactive vs. declarative systems
Using event storming to develop a DDD architecture
Learning objectives
How DDD differs from other architectural approaches
How DDD fits with agile
Advantages of microservices
Bounded contexts and entities
Reactive vs. declarative systems
Using event storming to develop a DDD architecture
Skills covered
Software DesignFoundationsSoftware Development
Concepts
0. Introduction
- 01 - Better apps with domain-driven design
1. Domain-Driven Design
- 02 - What is DDD
- 03 - How does DDD fit with agile
2. Microservices and Monoliths
- 04 - What is a microservice
- 05 - Advantages of microservices
3. Bounded Contexts and Entities
- 06 - What are contexts
- 07 - The ubiquitous language
- 08 - Same name, different entity
4. Reactive vs. Declarative Systems
- 09 - Orchestrated declarative systems
- 10 - Choreographed reactive systems
5. Event Storming
- 11 - What is event storming
- 12 - The physical setup
- 13 - Demo - Events
- 14 - Demo - Activities flow
- 15 - Demo - Activities flow, part 2
- 16 - Demo - Activities flow, part 3
- 17 - Demo - Entities
- 18 - Demo - Contexts
- 19 - Demo - Context maps
- 20 - Demo - Entity maps
Conclusion
- 21 - Next steps
Related courses
- Strategic Monoliths and Microservices
- Snowflake SnowPro Core Cert Prep
- How to Use AI Reasoning Models: Practical Applications with Hands-On Exercises
- Architecting Big Data Applications: Batch Mode Application Engineering
- Software Architecture Foundations
- CSSLP Cert Prep: 6 Secure Lifecycle Management
- Java EE: Design Patterns and Architecture
- AWS Infrastructure as Code for Software Developers
Related learn paths
- Getting Started with Agile Software Development
- Develop Your Skills in Agile Software Development
- Prepare for the MTA: Software Development Fundamentals Exam (98-361)
- Advance Your Skills in Natural Language Processing
- Become an IT Security Specialist
- Understanding Generative AI for Tech Leaders
- Getting Started with Software Testing
- Become a Programmer: Foundations