{"adoption": {"forks": 256, "observed_at": "2026-08-28T04:06:07.229127+00:00", "stars": 2030}, "canonical_url": "https://ross.abutalabs.com/products/commanded", "card": {"archived": false, "artifact_type": "framework", "description": "Use Commanded to build Elixir CQRS/ES applications", "domain": ["backend", "developer-tools", "microservices", "apis"], "enriched": true, "function": ["middleware", "message-queue", "workflow-automation", "serialization", "database-driver"], "health_score": 97, "homepage": null, "language": "Elixir", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["commanded/commanded"], "name": "commanded/commanded", "platform": ["elixir", "jvm", "windows", "cross-platform", "self-hosted"], "pushed_at": "2026-07-27T16:39:45+00:00", "repo": "commanded/commanded", "stars": 2030, "tags": ["cqrs", "event-sourcing", "elixir", "eventstore", "aggregates", "process-managers", "command-dispatch", "domain-driven-design", "hex-package", "postgres", "automation", "linux", "macos", "web-server"], "topics": ["cqrs", "elixir", "cqrs-es", "cqrs-framework", "event-sourcing", "commanded", "eventstore"], "urls": [], "use_cases": ["build a CQRS application in Elixir", "implement event sourcing with aggregates", "dispatch and route commands to domain aggregates", "create long-running process managers", "persist events to an event store backed by Postgres", "model a complex domain with event-driven architecture", "handle events asynchronously in a distributed system"], "what_it_is": "Commanded is an Elixir framework for building applications using the CQRS (Command Query Responsibility Segregation) and Event Sourcing (ES) patterns. It provides command registration and dispatch, aggregate hosting, event handling, and long-running process managers, with pluggable event store persistence.", "when_to_avoid": ["You are not using Elixir or the BEAM ecosystem", "Your application is simple CRUD and does not benefit from CQRS/ES complexity", "You need a turnkey application rather than a framework to build on", "You require an event store other than the supported options without custom integration work"], "when_to_choose": ["You are building an Elixir application and want to follow the CQRS/ES pattern", "You need a solid, battle-tested foundation for command dispatch, aggregates, and event handling", "You want to focus on domain modelling rather than infrastructure plumbing", "You need pluggable event store persistence (e.g., Postgres-backed EventStore)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/commanded", "repo": "commanded/commanded", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:07.229127+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:59:34.965062+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dce8b44f661e1550a35b7b862e78510b328d9be18e4dd5a6624753a63be616b8", "fetched_at": "2026-08-28T04:06:07.229127+00:00", "kind": "readme", "missing": false, "url": "https://github.com/commanded/commanded"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 83}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3813, "days_push": 37, "days_rel": 37, "gap_med": 63.5, "n_releases_24m": 7}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}