Building Blocks
Building Blocks

In this course, we will learn the concepts of microservice and spring framework with a focus on Domain-Driven Design.

Learning Objectives

  • Domain-Driven Design

Intended Audience

  • Beginner Java developers
  • Java developers interested in learning how to Build and Deploy RESTful Web Services
  • Java Developers who want to develop web applications using the Spring framework
  • Java Developers who want to develop web applications with microservices
  • Java Developers who wish to develop Spring Boot Microservices with Spring Cloud


  • Basic Java knowledge

Hello there. In this video we will continue discussing domain-driven design and also introduce building blocks. So, let's get started. It would not be wrong to say that the main purpose of domain-driven design is to solve complexity. DDD deals with both the challenge of understanding a problem domain and creating a maintainable solution that is useful to solve problems within it. It achieves this by utilizing a number of strategic and tactical patterns. The strategic patterns of DDD distill the problem domain and shape the architecture of an application. The tactical patterns of DDD also known as model building blocks are a collection of patterns that help create effective models for complex bounded contexts. Many of the coding patterns presented within the collection of tactical patterns have been widely adopted before Evin's texts. These patterns are not applicable to all models and each must be taken on its own merits with the correct architectural style applied.

The role of the tactical patterns in DDD is to manage complexity and ensure clarity of behavior within the domain model. You use the patterns to capture and convey meaning, relationships, and logic within the domain. Each building block pattern is designed to have a single responsibility. It could be to represent a concept in the domain like an entity or a value object or it could be to ensure that the concepts of the domain are kept uncluttered from lifecycle concerns like factory or repository objects. In a way, you can view the building blocks as ubiquitous language, UL, for developers to use as a framework for constructing rich and useful domain models. You can use numerous building block patterns shown in the slide in the creation of a domain model.

As you can see, when we build our project according to domain-driven design, we see that there are some patterns or structures that we need to use. For example, we encounter new patterns or structures such as entities and repositories. If you want, let's try to examine them in detail now, but let's take a short break here. We will continue where we left off in the next video, so I'll see you there.

About the Author
Learning Paths

OAK Academy is made up of tech experts who have been in the sector for years and years and are deeply rooted in the tech world. They specialize in critical areas like cybersecurity, coding, IT, game development, app monetization, and mobile development.