Spring Boot DDD in Practice: Learning Domain Design through an Order System

This course is for those who want to learn DDD but feel lost on "how to apply it to a real project." In this course, we will implement DDD design from start to finish by **building an actual ordering system** based on Spring Boot. The focus is not on simple theory, but on "structures and code that can be used immediately in practice." After taking this course, you will be able to: ✔ Design DDD-based projects on your own ✔ Implement professional-level structures yourself

(5.0) 2 reviews

46 learners

Level Basic

Course period 2 months

Java
Java
REST API
REST API
Spring Boot
Spring Boot
MSA
MSA
backend
backend
Java
Java
REST API
REST API
Spring Boot
Spring Boot
MSA
MSA
backend
backend

Reviews from Early Learners

5.0

5.0

소준영

100% enrolled

I came across this course while looking for lectures to help me with a corporate coding assignment. To master development at a level appropriate for the task without over-engineering, I believed I should design with a certain degree of scalability in mind, ensuring the structure could easily transition into something like multi-module or MSA. While I had a rough idea of DDD concepts, most resources were specialized for MSA. That’s why I decided to take this course, as it starts from a Monolith base. :) The core concepts of DDD at an appropriate level and the basic Hexagonal Architecture were quite helpful. However, as you frequently mentioned during the lectures, I judged that applying this full architecture might be difficult at the assignment level. Nevertheless, it became much clearer what factors to consider to increase scalability by enhancing cohesion and lowering coupling. I feel I can now appeal to evaluators by using a design that borrows core DDD principles without strictly following everything. This lecture helped me understand DDD—which seemed heavy and difficult when I knew nothing about it—much more easily, allowing me to take the next step forward. Thank you for the great lecture! :) I'll do my best on the test.

What you will gain after the course

  • You can directly set up a Spring Boot-based development environment to start DDD design.

  • You can understand the basic project structure and design flow for starting a DDD project.

  • You can directly create a working project base for learning DDD.

Course Introduction

This course focuses on a Spring Boot-based Java backend project and covers the process of starting from REST API design and gradually expanding into DDD and MSA architectures.

And along with the core concepts of DDD (Domain Driven Design),
we will understand the overall flow of how to design domains based on Clean Architecture / Hexagonal Architecture structures.


Why is DDD necessary?

In existing monolithic structures, the following problems occur:

  • Business logic and technical code are mixed together

  • The scope of impact when making changes becomes larger

  • Domain rules are becoming increasingly blurred

DDD proposes a
domain-centered design approach to solve these problems.



Understanding the Overall Structure (Core)


1. Clean Architecture Structure

  • Entities (Domain Core)

  • Use Case (Business Logic)

  • Interface Adapter (Controller, Presenter, etc.)

  • Framework (DB, Web, etc.)

Core Rule:

👉 Dependencies always flow from the outside → inside

In other words,
the DB or external systems do not need to know the domain,
and the domain must not depend on external technologies.


2. Hexagonal Architecture (Ports & Adapters)

Looking at the structure in more detail, it is as follows.

  • Application Core

    • Use Case

    • Entity

  • Input Port / Output Port

    • Interfaces connected to the outside

  • Adapter

    • Web Adapter (Controller)

    • Persistence Adapter (DB)

    • External System Adapter

Key Concepts:

👉 Business logic connects to the outside world only through ports


Summary of Key Components

Entity

  • Core objects of the domain

  • Includes business rules

  • Completely decoupled from external technologies

Use Case

  • Execution of actual service logic

  • Implementing functions by combining Entities

Port

  • Interface connecting to the outside

  • Boundaries that the application depends on

Adapter

  • Actual technical code implementing the Port

  • Responsible for DB, API, and external system connections


The concept of Bounded Context

Even for the same term, the meaning can vary depending on the context.

Example:

  • Order (Order) = Order creation perspective

  • Order = Payment processing perspective

Therefore,
👉 complexity is reduced only when models are separated by context


Summary (The core of this lesson)

The core takeaway you must gain from this class is as follows.

  • The domain must always be located at the center.

  • Business logic must be separated from technical code.

  • External systems are connected only through Adapters.

  • The reason for dividing the structure is for "maintenance and scalability."


Next Step Guide

Now, in the next lesson,
👉 based on the current monolithic structure,
👉 we will actually proceed with the process of refactoring into a DDD structure.

The key is to connect the flow of applying the concepts to code
once you have understood them.

Recommended for
these people

Who is this course right for?

  • Developers who want to study DDD but feel lost on how to start a project

  • A backend developer who wants to create their first DDD project based on Spring Boot.

  • Developers who want to learn DDD project structures and how to get started for practical use.

Need to know before starting?

  • Understanding Basic Java Syntax

  • Basic experience using Spring Boot

Hello
This is truthwing

A developer with 15 years of experience · A developer who built a monthly revenue structure of 10 million won

I don't just teach coding.
I provide the criteria to help you determine "if development is the right path for me."

We design realistic career strategies together with non-majors, job seekers, and those considering a career change.

More

Reviews

All

2 reviews

5.0

2 reviews

  • ffdfig1967님의 프로필 이미지
    ffdfig1967

    Reviews 3

    Average Rating 5.0

    Edited

    5

    100% enrolled

    I came across this course while looking for lectures to help me with a corporate coding assignment. To master development at a level appropriate for the task without over-engineering, I believed I should design with a certain degree of scalability in mind, ensuring the structure could easily transition into something like multi-module or MSA. While I had a rough idea of DDD concepts, most resources were specialized for MSA. That’s why I decided to take this course, as it starts from a Monolith base. :) The core concepts of DDD at an appropriate level and the basic Hexagonal Architecture were quite helpful. However, as you frequently mentioned during the lectures, I judged that applying this full architecture might be difficult at the assignment level. Nevertheless, it became much clearer what factors to consider to increase scalability by enhancing cohesion and lowering coupling. I feel I can now appeal to evaluators by using a design that borrows core DDD principles without strictly following everything. This lecture helped me understand DDD—which seemed heavy and difficult when I knew nothing about it—much more easily, allowing me to take the next step forward. Thank you for the great lecture! :) I'll do my best on the test.

    • truthwing
      Instructor

      Wow! Thank you for the great review. I wanted to convey the intention behind introducing DDD, and I feel so rewarded because it seems like you understood it well! I hope you pass the exam!!

  • libido90090님의 프로필 이미지
    libido90090

    Reviews 5

    Average Rating 5.0

    5

    30% enrolled

    • truthwing
      Instructor

      Thank you for the great review! I will continue to repay your support with excellent lectures and feedback! Please feel free to ask questions anytime~

Similar courses

Explore other courses in the same field!