💻
Software Engineering Notes
  • Introduction
  • Event-Sourcing
  • CQS and CQRS
  • Domain-Driven Design
    • Overview
    • Business Domain
    • Subdomain
    • Bounded Context
      • Interaction Between Contexts
    • Layers
      • Domain Layer
      • Application Layer
      • Infrastructure Layer
  • Database
    • In-Memory (Redis)
    • Search Engine (Elasticsearch)
    • Column-Oriented (Cassandra)
    • Document-Oriented (MongoDB)
  • Messaging
    • Brokers
      • Kafka
  • Race Condition
  • Concurrency vs Parallelism
  • API Architectural Styles
    • gRPC
  • Language & Framework Specific Notes
    • Go (Golang)
Powered by GitBook
On this page
  1. Domain-Driven Design

Layers

  1. Domain Layer

    • Core components of the system

    • Provide the implementation for the business rules and processes.

  2. Application Layer

    • Coordinates the use of the entities and domain services to implement the use cases (referring to business use cases).

    • This layer contains the application services, which are responsible for handling requests from the infrastructure layer, coordinating the use of the entities and domain services, and returning a response to the client.

  3. Infrastructure Layer:

    • Implements the technical details, such as persistence (e.g. database), messaging, and external integration.

    • Acts as a bridge between the domain and application layers and the external world.

By having these layers separated, it should be easier to make a change in one layer without affecting other layer. This way, the code should also be easier to understand and maintain over time.

PreviousInteraction Between ContextsNextDomain Layer

Last updated 1 year ago