awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
commanded avatar

commanded/commanded

0
View on GitHub↗
2,016 星标·257 分支·Elixir·MIT·5 次浏览

Commanded

Commanded is an Elixir framework designed for building event-sourced applications that utilize domain-driven design. It provides a structured environment for implementing command-query responsibility segregation, allowing developers to separate write-side command processing from read-side data projection. By treating state changes as an immutable sequence of events, the framework ensures a reliable audit trail and facilitates system recovery.

The project distinguishes itself through its support for distributed process orchestration and event-driven middleware pipelines. It enables the management of long-running workflows by coordinating multiple domain objects through asynchronous message passing, while middleware allows for the centralized handling of cross-cutting concerns like validation and authorization. The framework also includes built-in mechanisms for snapshot-based state recovery, which optimizes performance by reducing the computational overhead of replaying long event streams.

Beyond its core architecture, the framework offers a comprehensive suite of tools for system observability, including telemetry emission, architecture visualization, and event flow debugging. It provides robust testing utilities that allow developers to verify system behavior by mocking event stores, initializing aggregate states, and asserting event publication. The system is designed to be flexible, supporting both in-memory and persistent storage backends, as well as custom serialization strategies for event data.

Features

  • Event Sourcing - Persists application state as an immutable sequence of events to maintain a complete and reliable audit history.
  • Event Sourcing - Persists application state as an immutable sequence of events to maintain a complete audit history.
  • Event Sourcing Frameworks - Provides a toolkit for building event-sourced applications in Elixir using CQRS patterns.
  • Business Invariant Enforcement - Validates command data against current state to enforce business rules before persisting domain events.
  • Domain Aggregates - Encapsulates domain state and business logic within aggregate modules to ensure consistent state transitions.
  • System Command Dispatchers - Routes incoming commands to the appropriate aggregate to trigger business logic and persist resulting events.
  • Business Process Orchestration - Provides distributed process orchestration to manage long-running business workflows by coordinating multiple domain objects through asynchronous message passing.
  • Command Query Responsibility Segregation - Separates write-side command processing from read-side data projection to enable independent scaling and optimized query performance.
  • CQRS Frameworks - Provides a framework for routing commands to aggregates and persisting state changes as event streams.
  • CQRS Patterns - Implements architectural patterns that separate command processing from query execution to optimize complex business data retrieval.
  • Process Coordinators - Orchestrates domain objects by reacting to events and dispatching commands to manage complex business processes.
  • Append-Only Event Logs - Maintains a durable, append-only log of all state changes to provide a reliable foundation for system recovery.
  • State Initialization Utilities - Testing utilities append historical events directly to an event stream to set up a specific aggregate state before executing a command under test.
  • Domain Event Handlers - Processes recorded domain events to update aggregate state and maintain data integrity.
  • Domain Driven Design Frameworks - Encapsulates business logic and invariants within aggregate modules using Elixir-specific process orchestration.
  • Event Stores - Integrates durable event storage with read model projection for optimized query performance.
  • State Snapshots - Periodically saves aggregate state to reduce the computational overhead of replaying long event streams during system initialization.
  • Persistent Storage Providers - Saves domain events in durable databases to provide reliable audit logs and state reconstruction.
  • Aggregate State Management - Retrieves the current state of an aggregate to verify that business logic correctly updated the domain model after command processing.
  • Application Command Dispatchers - Directs incoming requests to specific aggregate instances based on unique identifiers to ensure correct state application.
  • Command Pipelines - Executes centralized validation and authorization logic within command dispatch pipelines.
  • Distributed Deployment Patterns - Supports configuring multiple application instances to synchronize state and process events across a distributed cluster.
  • Application State Trackers - Maintains internal state across event-driven interactions to track the progress of orchestrated aggregates and determine the next required actions.
  • Actor-Based Concurrency - Coordinates long-running workflows by using isolated, message-passing processes to manage domain object interactions.
  • Synchronous Dispatch Waiters - Ensures system integrity by waiting for event handlers to finish processing before returning a response to the caller.
  • Data Consistency Models - Updates read models before command dispatch returns to ensure applications can query the most recent state.
  • Event Mocking for Testing - Provides utilities to mock event stores and verify event publication during system testing.
  • Event Middleware - Executes modular logic before and after command dispatch to handle cross-cutting concerns like validation and authorization.
  • Event Sequence Verification - Asserts that specific events are published following a command dispatch to validate that the system behaves as expected.
  • Event Log Projections - Transforms persisted event streams into specialized, queryable read models to optimize data access performance.
  • Aggregate Snapshots - Saves aggregate state at intervals to reduce event replay overhead during initialization.
  • Process Lifecycle Managers - Controls the execution environment of background tasks by managing consistency levels, timeouts, and idle limits.
  • Asynchronous Test Handling - Pauses test execution until a specific event is received to handle eventual consistency in asynchronous systems during automated testing.

Star 历史

commanded/commanded 的 Star 历史图表commanded/commanded 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

包含 Commanded 的精选搜索

收录 Commanded 的精选合集。
  • Command interceptor library

常见问题解答

commanded/commanded 是做什么的?

Commanded is an Elixir framework designed for building event-sourced applications that utilize domain-driven design. It provides a structured environment for implementing command-query responsibility segregation, allowing developers to separate write-side command processing from read-side data projection. By treating state changes as an immutable sequence of events, the framework ensures a reliable audit trail and facilitates system recovery.

commanded/commanded 的主要功能有哪些?

commanded/commanded 的主要功能包括:Event Sourcing, Event Sourcing Frameworks, Business Invariant Enforcement, Domain Aggregates, System Command Dispatchers, Business Process Orchestration, Command Query Responsibility Segregation, CQRS Frameworks。

commanded/commanded 有哪些开源替代品?

commanded/commanded 的开源替代品包括: cer/event-sourcing-examples — This project is a framework for implementing event sourcing and command query responsibility segregation within… railseventstore/rails_event_store — Rails Event Store is a library for implementing event sourcing and command query responsibility segregation patterns… microservices-patterns/ftgo-application — This project is a Java microservices reference implementation that demonstrates the application of structural design… akkadotnet/akka.net — Akka.NET is an actor model framework used for building concurrent and distributed applications. It functions as a… livestorejs/livestore — Livestore is a reactive state management framework that utilizes a local SQLite database to store and synchronize… eventstore/eventstore — KurrentDB is an event-native database designed for event sourcing and event-driven architectures. It stores…

Commanded 的开源替代方案

相似的开源项目,按与 Commanded 的功能重合度排序。
  • cer/event-sourcing-examplescer 的头像

    cer/event-sourcing-examples

    3,160在 GitHub 上查看↗

    This project is a framework for implementing event sourcing and command query responsibility segregation within containerized microservices. It provides a structured approach to managing business state as a sequence of immutable events, ensuring a reliable audit trail and the ability to reconstruct system state at any point in time. The framework distinguishes itself by enforcing a clear separation between data modification and data retrieval paths. By utilizing event-driven data synchronization, it allows for the asynchronous updating of materialized views and read models, ensuring that quer

    JavaScript
    在 GitHub 上查看↗3,160
  • railseventstore/rails_event_storeRailsEventStore 的头像

    RailsEventStore/rails_event_store

    1,507在 GitHub 上查看↗

    Rails Event Store is a library for implementing event sourcing and command query responsibility segregation patterns within Ruby applications. It functions as a framework for capturing all application state changes as an immutable sequence of events, providing a permanent and verifiable history of system operations. The library provides a messaging infrastructure that decouples business logic by broadcasting domain events through a central bus. This architecture allows for the execution of handlers either immediately or asynchronously, ensuring that heavy processing tasks do not block the pri

    Rubyaggregate-rootcqrscqrs-es
    在 GitHub 上查看↗1,507
  • microservices-patterns/ftgo-applicationmicroservices-patterns 的头像

    microservices-patterns/ftgo-application

    3,718在 GitHub 上查看↗

    This project is a Java microservices reference implementation that demonstrates the application of structural design patterns for distributed systems. It consists of a suite of containerized services and infrastructure dependencies designed to showcase how to coordinate multiple independent services into a functional system. The implementation focuses on several advanced architectural patterns, including a centralized API gateway for routing and aggregating responses, Command Query Responsibility Segregation to separate read and write operations, and event sourcing to persist the state of bus

    Java
    在 GitHub 上查看↗3,718
  • akkadotnet/akka.netakkadotnet 的头像

    akkadotnet/akka.net

    5,023在 GitHub 上查看↗

    Akka.NET is an actor model framework used for building concurrent and distributed applications. It functions as a distributed computing platform and state manager that enables isolated actors to communicate via asynchronous message passing, ensuring thread-safe state management without manual locks. The project is distinguished by its decentralized coordination capabilities, including a distributed state manager that uses sharding and dynamic rebalancing to maintain high availability. It incorporates an event sourcing engine that persists state as a sequence of events in an append-only log an

    C#actoractor-modelakka
    在 GitHub 上查看↗5,023
  • 查看 Commanded 的所有 30 个替代方案→