awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Sairyss avatar

Sairyss/domain-driven-hexagon

0
View on GitHub↗
14,395 stars·1,480 forks·TypeScript·mit·36 views

Domain Driven Hexagon

This project is a TypeScript-based architectural framework designed to implement domain-driven design and hexagonal architecture in enterprise applications. It provides a structured boilerplate that isolates core business logic from infrastructure concerns, ensuring that domain entities, use cases, and external technology adapters remain decoupled and maintainable.

The framework distinguishes itself by enforcing strict architectural boundaries and dependency inversion, preventing unauthorized access to core logic from external layers. It utilizes a command-query responsibility segregation pattern to separate state-changing operations from data-retrieval queries, simplifying complex business logic and enabling independent scaling of models. By leveraging aggregate-based state management and event-driven communication, the system maintains data consistency across modules without creating direct dependencies.

The platform includes a comprehensive suite of tools for managing the full application lifecycle, including repository-based persistence, atomic transaction management, and automated project scaffolding. It supports robust development practices through integrated testing suites, including support for human-readable feature files, and enforces strict type safety and modular code organization to ensure consistency across large-scale codebases.

The repository provides a standardized foundation for building enterprise-grade systems, complete with built-in utilities for request validation, error handling, and infrastructure abstraction.

Features

  • Database Adapters - Provides standardized interfaces for decoupling application logic from specific database engines and external services.
  • Project Boilerplates - Enforces clean separation between domain entities, application use cases, and external technology adapters through project templates.
  • Command Query Responsibility Segregation Patterns - The framework routes state-changing operations and data-retrieval requests through distinct handlers to simplify logic and enable independent scaling of read and write models.
  • Clean Architecture Frameworks - Provides a strictly typed foundation for organizing complex business logic into decoupled modules with standardized command and query patterns.
  • Domain-Driven Designs - Implements clean, modular software by separating core business logic from infrastructure concerns using hexagonal architectural patterns.
  • Aggregate State Management - Encapsulates business logic and state transitions within a central object to maintain consistency and enforce domain-specific rules.
  • Command Execution Engines - The framework processes business logic by invoking handlers that apply state changes and ensure domain rules remain consistent across the application.
  • Design Pattern Implementations - Separates state-changing commands from data-retrieval queries to simplify scaling and maintainability in complex systems.
  • Dependency Inversion Patterns - Enforces strict boundaries by ensuring high-level business logic depends only on abstractions rather than concrete infrastructure implementations.
  • Command Query Separation - Separating state-changing operations from data-retrieval queries to simplify complex business logic and enable independent scaling of models.
  • Atomic Transaction Execution - Groups multiple database operations into a single unit of work that succeeds or fails entirely to ensure data consistency.
  • Business Invariant Enforcement - Validates entity state against defined rules before persistence to ensure that only valid data is saved to the database.
  • Persistence Abstractions - Decouples core business models from specific database technologies by using repository patterns and standardized interfaces.
  • Repository Patterns - Centralizes data access logic and decouples the domain model from specific database implementations using repository patterns.
  • Transaction Managers - Groups multiple database operations into atomic units to ensure data integrity and reliable persistence across complex business processes.
  • Infrastructure Abstraction Layers - The framework provides technology-agnostic interfaces for external services, ensuring business logic remains independent of specific databases, third-party APIs, or infrastructure implementation details.
  • Event-Driven Architectures - Triggers asynchronous side effects across system components to maintain data consistency without creating direct dependencies between different modules.
  • Dependency Boundary Enforcers - The framework analyzes and enforces dependency rules between layers to prevent unauthorized access to core domain logic from external infrastructure or interface layers.
  • Request Dispatchers - The framework dispatches incoming transport requests to specific domain commands through a centralized bus to decouple the communication layer from core business operations.
  • Decoupled Logic Encapsulation - Groups data and business rules within objects to ensure state remains consistent and protected from unauthorized external modifications.
  • Use Case Orchestrators - The framework coordinates interactions between the outside world and domain entities using application services that do not contain core business logic.
  • Workflow Orchestrators - The framework executes use cases by coordinating domain entities and external services through defined ports to keep business logic decoupled from infrastructure.
  • Domain Event Emission - Triggers notifications when state changes occur within an entity so that other parts of the system can react to updates asynchronously.
  • Domain Event Handlers - The framework executes automated side effects across system aggregates in response to specific events to maintain data consistency and decoupled business logic.
  • Data Persistence Layers - Maps domain objects to database records and handles storage operations to ensure data consistency between the application and the persistence layer.
  • Data Access Contracts - Standardizes database operations by enforcing a consistent interface for entity persistence and retrieval across different modules.
  • Atomic Transactions - Wraps database operations in atomic transactions to ensure that domain events and state changes are persisted reliably.
  • Project Scaffolding - Automates the creation of standardized application structures and boilerplate code to ensure consistent architecture across enterprise-grade projects.
  • Type Safety - Applies rigorous type safety rules during compilation to catch potential runtime errors and ensure consistent data structures.
  • Command Objects - The framework packages business intent and required data into structured objects to trigger state changes within the core application logic.
  • Error Handling - The framework converts internal error types into appropriate status codes and messages to ensure consistent and predictable error reporting for all system users.
  • Event-Driven Triggers - Decouples system components by using asynchronous domain events to trigger side effects and maintain data consistency.
  • Value Objects - Encapsulates domain data with built-in validation logic to ensure that objects remain in a valid state throughout the application lifecycle.
  • Request Validation - The framework enforces structural and content constraints on incoming data to ensure integrity and correctness before information reaches the core application logic.
  • Database Migration Management - Executes schema changes and versioning scripts to keep database structures synchronized across development, testing, and production environments.
  • Entity Mappings - Fetches records from the database by identifier or as a collection and transforms them back into domain objects using mapping logic.
  • Code Organization - Groups related business logic into independent, encapsulated modules to minimize coupling and support vertical slicing of features.
  • Error Handling Patterns - Returns explicit error types instead of throwing exceptions to make failure states visible and manageable within the application flow.
  • Query Objects - Separates read operations from business logic by encapsulating data retrieval within dedicated query objects.
  • Mutation Mappers - The framework maps incoming GraphQL mutation requests to internal command objects to trigger domain logic while returning standardized response types to the client.
  • Data Validation - Checks if provided values are empty or fall within specified length ranges to ensure data meets business requirements before processing.
  • Event Tracking - Records significant state changes within aggregates to facilitate decoupled communication and side effects across the system.
  • Pagination - Retrieves filtered data sets from the database using pagination parameters to optimize performance and reduce memory usage.
  • Message Brokers - The framework listens for incoming messages from a message queue and dispatches them to the correct command handler to execute business logic asynchronously.
  • Logging Abstractions - Standardizes how system events, errors, and warnings are recorded by defining a consistent interface for various logging implementations.
  • End-to-End Testing - Runs automated suites that simulate complete user workflows across an entire application stack to verify system-wide functional correctness.
  • Response Mappers - The framework maps internal domain entities to documented and serializable formats to ensure consistent data structures for all client communication across the system.

Star history

Star history chart for sairyss/domain-driven-hexagonStar history chart for sairyss/domain-driven-hexagon

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does sairyss/domain-driven-hexagon do?

This project is a TypeScript-based architectural framework designed to implement domain-driven design and hexagonal architecture in enterprise applications. It provides a structured boilerplate that isolates core business logic from infrastructure concerns, ensuring that domain entities, use cases, and external technology adapters remain decoupled and maintainable.

What are the main features of sairyss/domain-driven-hexagon?

The main features of sairyss/domain-driven-hexagon are: Database Adapters, Project Boilerplates, Command Query Responsibility Segregation Patterns, Clean Architecture Frameworks, Domain-Driven Designs, Aggregate State Management, Command Execution Engines, Design Pattern Implementations.

Which projects share features with sairyss/domain-driven-hexagon?

Projects with overlapping indexed features include: jasongt/cleanarchitecture — This project is an ASP.NET Core solution template and boilerplate that implements a clean architecture pattern for… eduardopires/equinoxproject — EquinoxProject is an ASP.NET 9 web application template and reference implementation for building enterprise software.… threedotslabs/wild-workouts-go-ddd-example — This project is a reference implementation of Domain-Driven Design, Clean Architecture, and Command Query… codelytv/typescript-ddd-example — This project is a reference implementation for building scalable applications in TypeScript using Domain-Driven… evolutionary-architecture/evolutionary-architecture-by-example — This project serves as a comprehensive educational resource for implementing modular monoliths and microservices… bespoyasov/frontend-clean-architecture — This project provides a structural pattern for organizing React and TypeScript applications by decoupling business…

Projects sharing features with Domain Driven Hexagon

These projects share indexed features with Domain Driven Hexagon. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • jasongt/cleanarchitectureJasonGT avatar

    JasonGT/CleanArchitecture

    20,216View on GitHub↗

    This project is an ASP.NET Core solution template and boilerplate that implements a clean architecture pattern for building enterprise applications and web API backends. It provides a standardized project scaffold designed to separate business logic from infrastructure and user interfaces to ensure high testability and low coupling. The project features a database agnostic structure that allows for switching persistence providers without altering core business logic. It includes a command line tool for enterprise application bootstrapping, enabling the automated generation of project structur

    C#
    View on GitHub↗20,216
  • eduardopires/equinoxprojectEduardoPires avatar

    EduardoPires/EquinoxProject

    6,774View on GitHub↗

    EquinoxProject is an ASP.NET 9 web application template and reference implementation for building enterprise software. It provides a structural boilerplate centered on clean architecture, domain-driven design, and the separation of read and write operations through a command query responsibility segregation framework. The project incorporates event sourcing to track the history of business entities as a sequence of events for auditing and state reconstruction. It utilizes a layered approach to decouple business logic from external dependencies and frameworks. The system includes capabilities

    C#architectureasp-net-coreasp-net-core-mvc
    View on GitHub↗6,774
  • threedotslabs/wild-workouts-go-ddd-exampleThreeDotsLabs avatar

    ThreeDotsLabs/wild-workouts-go-ddd-example

    6,348View on GitHub↗

    This project is a reference implementation of Domain-Driven Design, Clean Architecture, and Command Query Responsibility Segregation (CQRS) patterns using the Go programming language. It serves as a sample application to demonstrate how to decouple core domain rules from infrastructure and delivery mechanisms. The system is built as a gRPC microservices architecture, utilizing type-safe communication and service contracts. It implements an event-driven architecture to manage eventual consistency and asynchronous processing, specifically employing the Outbox pattern to ensure reliable messagin

    Goclean-architecturecqrsddd
    View on GitHub↗6,348
  • codelytv/typescript-ddd-exampleCodelyTV avatar

    CodelyTV/typescript-ddd-example

    1,473View on GitHub↗

    This project is a reference implementation for building scalable applications in TypeScript using Domain-Driven Design. It provides a structured codebase template that organizes business logic through tactical design patterns and strategic modeling to ensure the software reflects specific business requirements. The architecture utilizes a hexagonal pattern to isolate core business logic from external infrastructure concerns such as databases and delivery mechanisms. It implements Command Query Responsibility Segregation to separate data modification operations from information retrieval tasks

    TypeScriptcodelycodelytvcqrs
    View on GitHub↗1,473
Compare all 30 related projects→