Chapter Goal: Quick overview on DDD concepts. Will cover all the essentials including language . bounded contexts sub-domains, aggregates and entities
Chapter 2 : Cargo Tracker
Chapter Goal : Overview of our reference application and relevant use cases. This chapter will include mapping of DDD concepts to the use cases (Which bounded contexts , aggregate design, events that are emitted etc…) at a conceptual level.
Chapter 3: Cargo Tracker as a monolith
Chapter Goal: Using Jakarta EE as the base, this chapter will explore how we can build Cargo Tracker as a monolithic application using DDD concepts. This chapter will essentially take the core components of Jakarta EE and map it out to the corresponding DDD philosophies. At the end of the chapter we will have a complete running application on Jakarta EE based on DDD
Chapter 4: Decomposing Cargo Tracker using Micro Profile
Chapter Goal: Once the monolith is developed, we then move to moving it towards a microservices based architecture again based on DDD concepts. This chapter will essentially take the core components of the MicroProfile platform and map it out to the corresponding DDD philosophies. At the end of the chapter we will have a complete running application on MicroProfile based on DDD
Chapter 5: Decomposing Cargo Tracker using Spring Boot
Chapter Goal: This chapter repeats chapter 4 in intent except the execution platform is based on Spring Boot
Chapter 6: CQRS / Event Sourcing using AXON
Chapter Goal: This chapter delves into a new mechanism of developing Cargo Tracker using CQRS and Event Sourcing. It will first explain what CQRS and E/S is all about. It then moves towards developing the application using the AXON platform.
Vijay Nair is Director of Engineering within Oracle’s Financial Services Global Business Unit. He has around 18 years of experience in architecting and building mission-critical applications in the financial services industry.
See how Domain-Driven Design (DDD) combines with Jakarta EE MicroProfile or Spring Boot to offer a complete suite for building enterprise-grade applications. In this book you will see how these all come together in one of the most efficient ways to develop complex software.
Practical Domain-Driven Design in Enterprise Java starts by building out the Cargo Tracker reference application as a monolithic application using the Jakarta EE platform. By doing so, you will map concepts of DDD (bounded contexts, language, and aggregates) to the corresponding available tools (CDI, JAX-RS, and JPA) within the Jakarta EE platform.
Once you have completed the monolithic application, you will walk through the complete conversion of the monolith to a microservices-based architecture, again mapping the concepts of DDD and the corresponding available tools within the MicroProfile platform (config, discovery, and fault tolerance). To finish this section, you will examine the same microservices architecture on the Spring Boot platform.
The final set of chapters looks at what the application would be like if you used the CQRS and event sourcing patterns. Here you’ll use the Axon framework as the base framework.
You will:
Discover the DDD architectural principles and use the DDD design patterns
Use the new Eclipse Jakarta EE platform
Work with the Spring Boot framework
Implement microservices design patterns, including context mapping, logic design, entities, integration, testing, and security