Arquitetura: event-sourcing
O curso trata de event sourcing em aplicações Rails, em que cada mudança é guardada como um evento imutável e o estado atual é derivado da reprodução desses eventos. Ele compara esse modelo com o CRUD e mostra quando cada um faz sentido. As aulas tratam de nomes e versionamento de eventos, de um event store com streams no PostgreSQL, de projeções e read models, de CQRS e de sagas com ações compensatórias. A última aula apresenta a gem rails_event_store, a arquitetura híbrida, a migração em fases a partir do CRUD e testes em três níveis.
O que você vai aprender
- ✓A diferença entre event sourcing e CRUD, e quando usar cada um
- ✓Como nomear, desenhar e versionar eventos imutáveis com metadados
- ✓Como montar um event store só de acréscimos com streams no PostgreSQL
- ✓Projeções, read models e CQRS no Rails
- ✓Sagas, process managers e ações compensatórias
- ✓Arquitetura híbrida no Rails com a rails_event_store e migração em fases
O que é event sourcing?
Sua conta mostra R$2.847,63. Você esperava R$3.347,63. Você liga para o banco e pergunta para onde foram os R$500. O banco responde: "Não sabemos. Só guardamos o seu saldo atual."
Ler a aula completa grátis →Currículo
7 aulasO que é event sourcing?
Compara o CRUD baseado em estado com o registro de eventos imutáveis e mostra quando o event sourcing compensa.
Eventos como cidadãos de primeira classe
Trata de nomes no passado, schemas com valores do momento, metadados, imutabilidade e três estratégias de versionamento de eventos.
Event stores e streams
Monta um event store só de acréscimos numa tabela do PostgreSQL, com streams por agregado e concorrência otimista.
Projeções: reconstruindo estado a partir de eventos
Explica projeções que montam read models a partir de eventos, atualização síncrona ou assíncrona e reconstrução pela reprodução dos eventos.
CQRS: separando leituras de escritas
Separa o modelo de escrita, que recebe comandos, dos modelos de leitura, com e sem event sourcing no Rails.
Sagas e process managers
Coordena processos de vários passos com sagas e process managers, usando compensação e novas tentativas no lugar do 2PC.
Event sourcing no Rails: padrões práticos
Usa a rails_event_store numa arquitetura híbrida, com migração em fases a partir do CRUD, matriz de decisão e testes.