Practical Domain-Driven Design in Enterprise Java: Using Jakarta Ee, Microprofile, Spring Boot, and the Axon Framework
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.
What You Will Learn
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
Carry out event sourcing
Who This Book Is For
Junior developers intending to start working on enterprise Java; senior developers transitioning from monolithic- to microservices-based architectures; and architects transitioning to a DDD philosophy of building applications.
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.