Commandé
Utilisez Commanded pour créer vos propres applications Elixir en suivant le modèle CQRS/ES.
Fournit un support pour :
- Enregistrement et expédition des commandes.
- Hébergement et délégation aux agrégats.
- Gestion des événements.
- Gestionnaires de processus de longue durée.
Commanded fournit une base technique solide sur laquelle vous pouvez vous appuyer. Il vous permet de vous concentrer sur la modélisation de votre domaine, la partie la plus importante de votre application, en créant une meilleure application à un rythme plus rapide.
Vous pouvez utiliser Commanded avec l'un des magasins d'événements suivants pour la persistance :
- EventStore - Bibliothèque Elixir utilisant Postgres pour la persistance.
- EventStoreDB - une base de données de flux conçue pour le sourcing d'événements.
- Magasin d'événements en mémoire - inclus pour une utilisation test uniquement.
Veuillez vous référer au CHANGELOG pour les fonctionnalités, les corrections de bogues et tout conseil de mise à niveau inclus pour chaque version.
Nécessite Erlang/OTP v21.0 et Elixir v1.11 ou version ultérieure.
Commanditaires
- Voir les sponsors et les bailleurs de fonds
- Journal des modifications
- Wikia
- Qu’est-ce que le CQRS/ES ?
- Questions fréquemment posées
- Obtenir de l'aide
- Dernier package Hex publié et documentation
Licence MIT
Ce README et les guides suivants suivent la branche master
qui peut ne pas être la version actuellement publiée.
Lisez la documentation de la dernière version publiée de Commanded on Hex.
Aperçu
- Commencer
- Choisir une boutique événementielle
- EventStore basé sur PostgreSQL
- Boutique d'événements de Greg Young
- Utiliser Commandé
- Agrégats
- Exemple d'agrégat
-
Commanded.Aggregate.Multi
- Instantanés d’état agrégés
- Commandes
- Gestionnaires de commandes
- Envoi et routage des commandes
- Définir l'identité globale
- Enregistrement multi-commandes
- Délais d'attente d'envoi
- Garantie de cohérence des expéditions
- Dispatcher renvoyant le résultat de l'exécution
- Durée de vie globale
- Routeurs de commandes composites
- Intergiciel
- Routeurs de commandes composites
- Événements
- Événements de domaine
- Gestionnaires d'événements
- Événements de diffusion
- Gestionnaires de processus
- Exemple de gestionnaire de processus
- Surveillance
- Sérialisation
- Sérialiseur JSON par défaut
- Configuration de la sérialisation JSON
- Décoder les structures d'événements
- Utilisation d'un format de sérialisation alternatif
- Personnalisation de la sérialisation
- Lire les projections du modèle
- Déploiement
- Déploiement à nœud unique
- Déploiement de cluster multi-nœuds
- Déploiement multi-nœuds, mais pas en cluster
- Test avec Commandé
- Utilisé en production ?
- Exemple d'application
- Apprenez Commandé en 20 minutes
- Choisir un fournisseur de boutique événementielle
- Outillage
- Contribuer
- Besoin d'aide ?
Utilisé en production ?
Oui, consultez les entreprises utilisant Commanded.
Exemple d'application
Conduit est une application Web open source, exemple Phoenix 1.3, implémentant le modèle CQRS/ES dans Elixir. Il a été construit pour démontrer la mise en œuvre de Commanded dans une application Elixir pour le livre Building Conduit.
Apprenez Commandé en 20 minutes
Regardez Bernardo Amorim présenter CQRS et le sourcing d'événements à Code Beam SF 2018. Y compris un didacticiel sur la façon d'implémenter une application Elixir en utilisant ces concepts avec Commanded.
Contribuer
Les demandes d'extraction visant à contribuer à des fonctionnalités nouvelles ou améliorées et à étendre la documentation sont les bienvenues.
Veuillez suivre les conventions de codage existantes ou vous référer au guide de style Elixir.
Vous devez inclure des tests unitaires pour couvrir tout changement. Exécutez mix test
pour exécuter la suite de tests.
Contributeurs
Commanded existe grâce aux personnes suivantes qui ont contribué.
- Adil Yarouline
- Alexandre de Souza
- Andreï Akoulov
- Andrej Sliwa
- Ben Smith
- Benjamin Moss
- Bernardo Amorim
- Brenton Annan
- Chris Brodt
- Chris Martin
- Christophe Juniét
- Danilo Silva
- Dave Lucie
- David Carlin
- Damir Vandic
- Danni Friedland
- Dilaksun Bavarajan
- Ernesto
- Fernando Mendès
- Florian Ebeling
- Henri Hazan
- JC
- Jeanne Zapata
- João Gilberto Moura
- João Thallis
- John Wilger
- Joseph Lozano
- Kian Meng Ang
- Kok J Sam
- Leif Gensert
- Luís Ferreira
- Marcelo Domínguez
- Matt Doughty
- Matthieu Boehlig
- Michel Hérold
- Miguel Palhas
- Nigel Thorne
- Olafur Arason
- Paul Laurenti
- Patrick Detlefsen
- Phil Chen
- Raphaël Lustin
- Stefan Ľuptak
- Tobiasz Malecki
- Vladimir Drobychevski
- Willy Wombat
- Yordis Prieto
- Youri de Figueiredo
- Zven
Besoin d'aide ?
Veuillez ouvrir un problème si vous rencontrez un problème ou si vous avez besoin d'aide. Vous pouvez également demander de l'aide sur la chaîne #commanded de l'Elixir Slack officiel.