awesome-repositories.com
Blog
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
evolutionary-architecture avatar

evolutionary-architecture/evolutionary-architecture-by-example

0
View on GitHub↗
3,447 stars·522 forks·C#·MIT·7 views

Evolutionary Architecture By Example

This project serves as a comprehensive educational resource for implementing modular monoliths and microservices within .NET environments. It focuses on applying domain-driven design principles to manage complex business logic, providing a structured approach to building systems that can evolve alongside changing requirements.

The architecture is defined by its emphasis on modularity and clear boundaries, utilizing vertical slices and bounded contexts to organize code by business process rather than technical layer. It distinguishes itself through a systematic migration framework that allows developers to transition from a monolithic codebase to independent, distributed services. This is achieved by replacing internal communication with robust, event-driven messaging and ensuring that domain logic remains decoupled from persistence and infrastructure concerns.

The project covers a broad capability surface, including tactical domain modeling with aggregates and entities, automated testing strategies using containerized infrastructure, and the maintenance of architectural decision records to track design evolution. It also provides tooling for local development orchestration and static analysis to enforce quality standards across independent modules.

The repository is structured as a practical guide, offering a step-by-step methodology for scaling software architecture incrementally.

Features

  • Modular Monoliths - Provides comprehensive guidance on building single-unit applications structured into independent, feature-based modules.
  • Domain Driven Design - Provides educational resources and practical examples for implementing domain-driven design patterns.
  • Business Invariant Enforcement - Validates entity state against defined business rules to ensure consistency during state transitions.
  • Domain-Driven Entity Frameworks - Provides structural environments for implementing aggregates that manage consistency boundaries and state changes.
  • Aggregate State Management - Encapsulates business logic and state transitions within a central object to maintain consistency.
  • Vertical Slices - Groups related logic and dependencies into self-contained feature folders to simplify maintenance.
  • .NET Architecture Guides - Offers a comprehensive educational resource for building modular monoliths and microservices using .NET.
  • Component-Based Module Organizations - Structures code into self-contained modules that encapsulate logic and routing for improved maintainability.
  • Bounded Context Definition - Specifies the roles, responsibilities, and boundaries for different domain models to prevent logic conflicts.
  • Modular Monolith Strategies - Provides strategies for delaying the transition to microservices by favoring isolated modules until independent deployment becomes necessary.
  • Isolated Monolithic Modules - Organizes functionality into isolated modules within a single deployment unit to manage complexity and data access requirements.
  • Domain-Persistence Decoupling - Separates business entity definitions from database schemas to ensure domain rules remain independent of infrastructure.
  • Bounded Contexts - Defines explicit boundaries that establish the responsibility and linguistic scope of a specific domain model.
  • Domain Event Emission - Triggers notifications when state changes occur within an entity to allow asynchronous system reaction.
  • Domain Logic Patterns - Provides standards for organizing business logic, associations, and validations within the model layer.
  • Code Quality and Analysis - Uses static analysis and linting tools to enforce coding standards and identify potential bugs.
  • Message Brokers - Uses infrastructure components to decouple service communication by facilitating asynchronous data exchange through message queues.
  • Architecture Decision Records - Provides a system for documenting and tracking technical design choices and their rationale.
  • Cross-Module API Definitions - Establishes shared data formats and interface contracts to ensure consistent communication between internal system modules.
  • Module-to-Service Extractions - Provides strategies for decomposing internal application modules into independent microservices via API definition and IPC.
  • Event Bus Systems - Provides architectural patterns and utilities for decoupled communication between application components.
  • Event Driven Messaging - Provides interfaces and abstractions for decoupling services through asynchronous message delivery and pub-sub patterns.
  • Inter-Module Communication - Provides mechanisms for invoking functions and exchanging data between isolated internal modules.
  • Migration Strategies - Outlines strategies for transitioning from monolithic codebases to distributed services through incremental service extraction.
  • Value Objects - Encapsulates data with built-in validation logic to represent domain concepts without identity.
  • Context-Based Organizations - Structures code by business domain context to ensure business processes are self-contained.
  • Shared Event Definitions - Distributes shared event definitions as versioned packages to maintain consistency across multiple services.
  • Separation of Concerns - Enforces separation of concerns by grouping related business logic into distinct projects.
  • Isolated Module Testing - Tests individual modules in isolation to enable targeted verification of business domains.
  • Migration Methodologies - Provides a step-by-step methodology for transitioning monolithic applications into distributed services using message-based communication.
  • Integration Test Suites - Verifies the interaction between different components of a system in a containerized environment.
  • Containerized Integration Tests - Execute integration tests against isolated database instances running in containers to ensure reliable verification of service behavior in a production-like environment.
  • End-to-End Testing - Simulates complete business workflows across the application stack to verify functional correctness.
  • Containerized Integration Tests - Automates testing that verifies component interactions using production-like container environments.

Star history

Star history chart for evolutionary-architecture/evolutionary-architecture-by-exampleStar history chart for evolutionary-architecture/evolutionary-architecture-by-example

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

Open-source alternatives to Evolutionary Architecture By Example

Similar open-source projects, ranked by how many features they share with Evolutionary Architecture By Example.
  • sairyss/domain-driven-hexagonSairyss avatar

    Sairyss/domain-driven-hexagon

    14,395View on GitHub↗

    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 pat

    TypeScriptarchitectural-patternsarchitecturebackend
    View on GitHub↗14,395
  • zakirullin/cognitive-loadzakirullin avatar

    zakirullin/cognitive-load

    12,288View on GitHub↗

    This project is a collection of software engineering principles and architectural design patterns designed to minimize the mental effort required to understand and maintain source code. It serves as a guide for implementing clean code methodologies and architectural simplification to reduce the overall cognitive load on developers. The framework emphasizes aligning module boundaries and ubiquitous language with business stakeholders to prevent architectural ripple effects. It advocates for balancing service granularity to avoid the overhead of distributed monoliths and suggests favoring objec

    View on GitHub↗12,288
  • jasontaylordev/cleanarchitecturejasontaylordev avatar

    jasontaylordev/CleanArchitecture

    19,657View on GitHub↗

    This project is a comprehensive template for building enterprise-grade applications using clean architecture principles. It provides a structured foundation that decouples core business logic from infrastructure concerns, ensuring that domain entities remain independent of specific frameworks or database implementations. By utilizing a mediator-based request dispatching pattern, the system separates state-mutating commands from read-only queries, promoting a clean separation of concerns across the entire codebase. The architecture is organized into vertical slices, grouping related logic and

    Bicepangularaspnetcoreclean-architecture
    View on GitHub↗19,657
  • ddd-by-examples/libraryddd-by-examples avatar

    ddd-by-examples/library

    5,805View on GitHub↗

    This project is a reference implementation of Domain-Driven Design patterns, functional domain modeling, and event-driven state coordination. It demonstrates the application of strategic and tactical design patterns to manage complex business requirements. The implementation utilizes a functional domain model with pure functions and immutable objects to manage state transitions and side effects. It features a Command Query Responsibility Segregation architecture to separate read and write models, alongside event-driven coordination to maintain consistency across autonomous business boundaries

    Java
    View on GitHub↗5,805
See all 30 alternatives to Evolutionary Architecture By Example→

Curated searches featuring Evolutionary Architecture By Example

Hand-picked collections where Evolutionary Architecture By Example appears.
  • Build your own X
  • a guide to modern software architecture patterns
  • Event-Driven Architecture Guides and Examples

Frequently asked questions

What does evolutionary-architecture/evolutionary-architecture-by-example do?

This project serves as a comprehensive educational resource for implementing modular monoliths and microservices within .NET environments. It focuses on applying domain-driven design principles to manage complex business logic, providing a structured approach to building systems that can evolve alongside changing requirements.

What are the main features of evolutionary-architecture/evolutionary-architecture-by-example?

The main features of evolutionary-architecture/evolutionary-architecture-by-example are: Modular Monoliths, Domain Driven Design, Business Invariant Enforcement, Domain-Driven Entity Frameworks, Aggregate State Management, Vertical Slices, .NET Architecture Guides, Component-Based Module Organizations.

What are some open-source alternatives to evolutionary-architecture/evolutionary-architecture-by-example?

Open-source alternatives to evolutionary-architecture/evolutionary-architecture-by-example include: sairyss/domain-driven-hexagon — This project is a TypeScript-based architectural framework designed to implement domain-driven design and hexagonal… zakirullin/cognitive-load — This project is a collection of software engineering principles and architectural design patterns designed to minimize… jasontaylordev/cleanarchitecture — This project is a comprehensive template for building enterprise-grade applications using clean architecture… ddd-by-examples/library — This project is a reference implementation of Domain-Driven Design patterns, functional domain modeling, and… cheese10yun/spring-jpa-best-practices — This project serves as a comprehensive guide and collection of architectural patterns for implementing domain-driven… threedotslabs/wild-workouts-go-ddd-example — This project is a reference implementation of Domain-Driven Design, Clean Architecture, and Command Query…