Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Domain-Driven Design
  3. commanded

commanded

MITElixirv1.4.11

A framework for building Elixir applications using the CQRS and Event Sourcing (CQRS/ES) pattern.

GitHubGitHub
2.0k stars256 forks0 contributors

What is commanded?

Commanded is an Elixir framework for building applications that follow the CQRS (Command Query Responsibility Segregation) and Event Sourcing (ES) patterns. It provides the infrastructure needed to handle commands, manage aggregates, process events, and run long-lived process managers, abstracting away the boilerplate so developers can focus on business logic.

Target Audience

Elixir developers and teams building complex, domain-driven applications that require scalability, auditability, and a clear separation between write and read models, such as financial systems, e-commerce platforms, or real-time collaboration tools.

Value Proposition

Developers choose Commanded because it offers a battle-tested, production-ready foundation for CQRS/ES in Elixir, reducing implementation time and complexity while ensuring best practices. Its flexibility in event store integration and comprehensive feature set for command and event handling make it a go-to solution for event-sourced architectures.

Overview

Use Commanded to build Elixir CQRS/ES applications

Use Cases

Best For

  • Building scalable Elixir applications with event-sourced architectures
  • Implementing complex business workflows with process managers
  • Creating audit trails and historical data replay via event sourcing
  • Developing domain-driven design (DDD) applications in Elixir
  • Separating read and write models for performance optimization
  • Integrating with EventStoreDB or PostgreSQL for event persistence

Not Ideal For

  • Simple CRUD applications without complex business logic or audit requirements
  • Teams without prior experience in domain-driven design or CQRS/ES patterns
  • Projects requiring immediate consistency across all read operations, as event sourcing often involves eventual consistency
  • Rapid prototyping where traditional frameworks like Phoenix with Ecto offer faster initial development

Pros & Cons

Pros

Production-Ready Foundation

Commanded is battle-tested and used by companies in production, providing a reliable base for complex Elixir applications, as listed in its wiki.

Flexible Event Storage

Supports multiple event stores like PostgreSQL-based EventStore and EventStoreDB, allowing developers to choose based on scalability and operational needs.

Comprehensive Workflow Support

Includes built-in process managers for coordinating long-running business processes, simplifying implementation of complex domain logic.

Focus on Domain Modeling

Abstracts command dispatch and event handling boilerplate, enabling developers to concentrate on core business rules, as emphasized in the philosophy.

Cons

Architectural Overhead

Implementing CQRS/ES adds significant design complexity, making it overkill for straightforward applications without complex domain requirements.

Event Schema Evolution Challenges

Managing changes to event schemas over time requires careful upcasting and serialization customization, as noted in the guides, which can be error-prone.

Dependency on External Stores

Relies on event stores like EventStoreDB, introducing additional operational overhead and potential vendor lock-in compared to traditional databases.

Frequently Asked Questions

Quick Stats

Stars2,030
Forks256
Contributors0
Open Issues12
Last commit1 month ago
CreatedSince 2016

Tags

#elixir#cqrs#event-sourcing#aggregates#cqrs-framework#domain-driven-design#cqrs-es#commanded#postgresql#erlang-otp#eventstore

Built With

E
Elixir
E
Erlang/OTP

Included in

Elixir13.1kDomain-Driven Design12.2k
Auto-fetched 5 hours ago

Related Projects

plugplug

Compose web applications with functions

Stars3,016
Forks610
Last commit5 days ago
surfacesurface

A server-side rendering component library for Phoenix

Stars2,135
Forks146
Last commit5 months ago
ex_adminex_admin

ExAdmin is an auto administration package for Elixir and the Phoenix Framework

Stars1,197
Forks264
Last commit6 years ago
torchtorch

A rapid admin generator for Elixir & Phoenix

Stars1,174
Forks85
Last commit4 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub