Befohlen
Verwenden Sie Commanded, um Ihre eigenen Elixir-Anwendungen nach dem CQRS/ES-Muster zu erstellen.
Bietet Unterstützung für:
- Befehlsregistrierung und -versand.
- Hosting und Delegation an Aggregate.
- Event-Handling.
- Langjährige Prozessmanager.
Commanded bietet eine solide technische Grundlage, auf der Sie aufbauen können. Dadurch können Sie sich auf die Modellierung Ihrer Domäne, dem wichtigsten Teil Ihrer App, konzentrieren und schneller eine bessere Anwendung erstellen.
Für die Persistenz können Sie Commanded mit einem der folgenden Ereignisspeicher verwenden:
- EventStore – Elixir-Bibliothek, die Postgres für Persistenz verwendet.
- EventStoreDB – eine Stream-Datenbank, die für Event Sourcing entwickelt wurde.
- In-Memory-Ereignisspeicher – nur für Testzwecke enthalten.
Bitte beachten Sie das CHANGELOG für Funktionen, Fehlerbehebungen und etwaige Upgrade-Ratschläge für jede Version.
Erfordert Erlang/OTP v21.0 und Elixir v1.11 oder höher.
Sponsoren
- Sponsoren und Unterstützer anzeigen
- Änderungsprotokoll
- Wiki
- Was ist CQRS/ES?
- Häufig gestellte Fragen
- Hilfe bekommen
- Neuestes veröffentlichtes Hex-Paket und Dokumentation
MIT-Lizenz
Diese README-Datei und die folgenden Anleitungen folgen dem master
Zweig, der möglicherweise nicht die aktuell veröffentlichte Version ist.
Lesen Sie die Dokumentation zur neuesten veröffentlichten Version von Commanded on Hex.
Überblick
- Erste Schritte
- Auswahl eines Event-Stores
- PostgreSQL-basierter EventStore
- Greg Youngs Event Store
- Befohlen verwenden
- Aggregate
- Beispielaggregat
-
Commanded.Aggregate.Multi
- Aggregierte Status-Snapshots
- Befehle
- Befehlshandler
- Befehlsversand und -weiterleitung
- Definieren Sie die aggregierte Identität
- Registrierung mehrerer Befehle
- Versandzeitüberschreitungen
- Garantierte Versandkonsistenz
- Versand, der das Ausführungsergebnis zurückgibt
- Gesamtlebensdauer
- Verbundbefehlsrouter
- Middleware
- Verbundbefehlsrouter
- Veranstaltungen
- Domänenereignisse
- Ereignishandler
- Upcasting-Ereignisse
- Prozessmanager
- Aufsicht
- Serialisierung
- Standard-JSON-Serialisierungsprogramm
- Konfigurieren der JSON-Serialisierung
- Ereignisstrukturen dekodieren
- Verwendung eines alternativen Serialisierungsformats
- Anpassen der Serialisierung
- Modellprojektionen lesen
- Einsatz
- Bereitstellung eines einzelnen Knotens
- Clusterbereitstellung mit mehreren Knoten
- Multi-Node-Bereitstellung, aber keine Cluster-Bereitstellung
- Testen mit Commanded
- In der Produktion verwendet?
- Beispielanwendung
- Lernen Sie „Command“ in 20 Minuten
- Auswahl eines Event-Store-Anbieters
- Werkzeuge
- Mitwirken
- Brauchen Sie Hilfe?
In der Produktion verwendet?
Ja, sehen Sie sich die Unternehmen an, die Commanded nutzen.
Beispielanwendung
Conduit ist eine Open-Source-Beispiel-Phoenix-1.3-Webanwendung, die das CQRS/ES-Muster in Elixir implementiert. Es wurde erstellt, um die Implementierung von Commanded in einer Elixir-Anwendung für das Building Conduit-Buch zu demonstrieren.
Lernen Sie „Command“ in 20 Minuten
Sehen Sie, wie Bernardo Amorim auf der Code Beam SF 2018 CQRS und Event Sourcing vorstellt. Einschließlich eines Tutorials zur Implementierung einer Elixir-Anwendung unter Verwendung dieser Konzepte mit Commanded.
Mitwirken
Pull-Requests, um neue oder verbesserte Funktionen beizutragen und die Dokumentation zu erweitern, sind herzlich willkommen.
Bitte befolgen Sie die bestehenden Codierungskonventionen oder lesen Sie den Elixir-Styleguide.
Sie sollten Unit-Tests einschließen, um etwaige Änderungen abzudecken. Führen Sie mix test
aus, um die Testsuite auszuführen.
Mitwirkende
Commanded existiert dank der folgenden Personen, die dazu beigetragen haben.
- Adil Yarulin
- Alexandre de Souza
- Andrey Akulov
- Andrzej Sliwa
- Ben Smith
- Benjamin Moss
- Bernardo Amorim
- Brenton Annan
- Chris Brodt
- Chris Martin
- Christophe Juniet
- Danilo Silva
- Dave Lucia
- David Carlin
- Damir Vandic
- Danni Friedland
- Dilaksun Bavarajan
- Ernesto
- Fernando Mendes
- Florian Ebeling
- Henry Hazan
- JC
- Joan Zapata
- Joao Gilberto Moura
- João Thallis
- John Wilger
- Joseph Lozano
- Kian-Meng Ang
- Kok J Sam
- Leif Gensert
- Luis Ferreira
- Marcelo Dominguez
- Matt Doughty
- Matthew Boehlig
- Michael Herold
- Miguel Palhas
- Nigel Thorne
- Olafur Arason
- Paolo Laurenti
- Patrick Detlefsen
- Phil Chen
- Raphaël Lustin
- Štefan Ľupták
- Tobiasz Małecki
- Wladimir Drobyschewski
- Willy Wombat
- Yordis Prieto
- Yuri de Figueiredo
- Zven
Brauchen Sie Hilfe?
Bitte öffnen Sie ein Problem, wenn Sie auf ein Problem stoßen oder Hilfe benötigen. Sie können auch im #commanded-Kanal im offiziellen Elixir Slack um Hilfe bitten.