Skip to content

Repository files navigation

Development Quality - Order Flow

A comprehensive DDD, CQRS, event-driven application for customer's order and stock management.

This application stack is designed for integrating into an ecosystem needing generic customer and order management.


Overview

Features

This application enables the management of:

  • Cart: A list of products a customer wants to order, with associated quantities.
  • Order: A lifecycle-managed aggregate representing customer orders.
  • Product Catalog: A catalog of products available for ordering, including pricing details.
  • Product Registry: A central registry managing product data.
  • Stock: The inventory of available products and their quantities.

Architecture

Key Concepts

  • Domain-Driven Design (DDD): The application is designed with bounded contexts and aggregates.
  • CQRS (Command Query Responsibility Segregation): Separation of commands (write operations) and queries (read operations).
  • Event Sourcing: Persistent storage of application state as a series of events.

Services and Libraries

Applications

  • API Gateway (apps/of-api-gateway): Exposes business logic via HTTP APIs (REST, RPC, SSE).
  • Product Registry Microservices (apps/of-product-registry-microservices):
    • Command Service: Handles product registry commands.
    • Read Service: Handles product registry queries.

Libraries

  • Event Sourcing (libs/event-sourcing): Core business logic for event-driven operations.
  • Infrastructure (libs/infrastructure): Infrastructure layer logic.
  • Shared (libs/shared): Common business logic shared across services.

Installation

Development Environment

This project is designed to run in a Docker environment using a devcontainer for consistent development setups. It is a mono-repository, containing multiple interrelated packages.

Pre-requisites

Ensure you have the following installed:

  • Docker
  • Docker Compose
  • Visual Studio Code / IntelliJ IDEA
  • Java 17+ (included in the devcontainer)
  • Gradle 7.3+ (included in the devcontainer)
  • Node.js 22+ (included in the devcontainer)
  • pnpm 9.6+ (included in the devcontainer)

Setup Steps

  1. Clone the repository:
    git clone https://github.com/username/order-flow.git
    cd order-flow

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages