Comandado
Use Commanded para construir seus próprios aplicativos Elixir seguindo o padrão CQRS/ES.
Fornece suporte para:
- Registro e envio de comandos.
- Hospedagem e delegação a agregados.
- Tratamento de eventos.
- Gerentes de processos de longa duração.
Commanded fornece uma base técnica sólida para você desenvolver. Ele permite que você se concentre na modelagem do seu domínio, a parte mais importante do seu aplicativo, criando um aplicativo melhor em um ritmo mais rápido.
Você pode usar Commanded com um dos seguintes armazenamentos de eventos para persistência:
- EventStore - Biblioteca Elixir usando Postgres para persistência.
- EventStoreDB - um banco de dados de fluxo criado para Event Sourcing.
- Armazenamento de eventos na memória – incluído apenas para uso de teste.
Consulte o CHANGELOG para recursos, correções de bugs e qualquer conselho de atualização incluído para cada versão.
Requer Erlang/OTP v21.0 e Elixir v1.11 ou posterior.
Patrocinadores
- Ver patrocinadores e apoiadores
- Registro de alterações
- Wikipédia
- O que é CQRS/ES?
- Perguntas frequentes
- Obtendo ajuda
- Último pacote e documentação Hex publicado
Licença MIT
Este README e os guias a seguir seguem o branch master
, que pode não ser a versão publicada atualmente.
Leia a documentação da última versão publicada do Commanded on Hex.
Visão geral
- Começando
- Escolhendo uma loja de eventos
- EventStore baseado em PostgreSQL
- Loja de eventos de Greg Young
- Usando Comando
- Agregados
- Exemplo agregado
-
Commanded.Aggregate.Multi
- Instantâneos de estado agregado
- Comandos
- Manipuladores de comando
- Despacho e roteamento de comandos
- Definir identidade agregada
- Registro multicomando
- Tempos limite de envio
- Garantia de consistência de despacho
- Despacho retornando resultado da execução
- Vida útil agregada
- Roteadores de comando compostos
- Middleware
- Roteadores de comando compostos
- Eventos
- Eventos de domínio
- Manipuladores de eventos
- Upcasting de eventos
- Gerentes de processos
- Exemplo de gerenciador de processos
- Supervisão
- Serialização
- Serializador JSON padrão
- Configurando a serialização JSON
- Decodificando estruturas de eventos
- Usando um formato de serialização alternativo
- Personalizando a serialização
- Leia as projeções do modelo
- Implantação
- Implantação de nó único
- Implantação de cluster de vários nós
- Implantação em vários nós, mas não em cluster
- Testando com Comando
- Usado na produção?
- Exemplo de aplicação
- Aprenda comandado em 20 minutos
- Escolhendo um fornecedor de loja de eventos
- Ferramentas
- Contribuindo
- Precisar de ajuda?
Usado na produção?
Sim, veja as empresas que usam o Commanded.
Exemplo de aplicação
Conduit é um aplicativo da web de código aberto, exemplo Phoenix 1.3, que implementa o padrão CQRS/ES no Elixir. Ele foi construído para demonstrar a implementação do Commanded em um aplicativo Elixir para o livro Building Conduit.
Aprenda comandado em 20 minutos
Assista Bernardo Amorim apresentar o CQRS e o fornecimento de eventos no Code Beam SF 2018. Incluindo um tutorial sobre como implementar um aplicativo Elixir usando esses conceitos com Commanded.
Contribuindo
Solicitações pull para contribuir com recursos novos ou aprimorados e estender a documentação são muito bem-vindas.
Siga as convenções de codificação existentes ou consulte o guia de estilo Elixir.
Você deve incluir testes de unidade para cobrir quaisquer alterações. Execute mix test
para executar o conjunto de testes.
Colaboradores
Commanded existe graças às seguintes pessoas que contribuíram.
- Adil Yarulin
- Alexandre de Souza
- Andrei Akulov
- Andrzej Sliwa
- Ben Smith
- Benjamin Moss
- Bernardo Amorim
- Brenton Annan
- Chris Brodt
- Chris Martin
- Christophe Junieto
- Daniel Silva
- Dave Lúcia
- David Carlin
- Damir Vandic
- Danni Friedland
- Dilaksun Bavarajan
- Ernesto
- Fernanda Mendes
- Florian Ebeling
- Henrique Hazan
- JC
- Joana Zapata
- João Gilberto Moura
- João Thalis
- John Wilger
- José Lozano
- Kian Meng Ang
- Kok J Sam
- Leif Gensert
- Luís Ferreira
- Marcelo Dominguez
- Matt Doughty
- Matthew Boehlig
- Michael Herold
- Miguel Palhas
- Nigel Thorne
- Olafur Arasón
- Paulo Laurenti
- Patrick Detlefsen
- Phil Chen
- Raphael Lustin
- Štefan Ľupták
- Tobiasz Małecki
- Vladimir Drobyshevskiy
- Willy Vombat
- Yordis Prieto
- Yuri de Figueiredo
- Zven
Precisar de ajuda?
Abra um problema se encontrar um problema ou precisar de ajuda. Você também pode buscar ajuda no canal #commanded do Elixir Slack oficial.