[TDC Recife 2019] Event Driven Architecture

[TDC Recife 2019] Event Driven Architecture

Cada vez mais estamos evoluindo para um cenário onde contextos bem definidos do business são representados por serviços independentes que expressam a realidade por trás do código. Tendo em vista que nossa realidade é assíncrona e que muito do que acontece no mundo é visto por nós como "coisas" (ou eventos) que acontecem em diferentes contextos ao nosso redor, o objetivo de modelar software que expresse a realidade também tange a comunicação entre serviços de diferentes contextos, em forma de eventos.

Nessa talk, veremos como uma arquitetura baseada em eventos pode ser uma opção coerente e viável para a comunicação entre serviços, abordando suas vantagens e desvantagens.

http://thedevelopersconference.com.br/tdc/2019/recife/trilha-arquitetura

36489105af6ebd101e8f250e537e70d3?s=128

Camila Campos

October 10, 2019
Tweet

Transcript

  1. 3.

    @camposmilaa Plataforma online Empréstimo com garantia Juros baixos pra você

    <3 creditas.com.br vagas.creditas.com.br @CreditasBR
  2. 4.

    @camposmilaa Inclusão de mulheres em Tech Workshop de Rails Inspiração

    railsgirls.com.br fb.com/railsgirls.sp @RailsGirlsSP
  3. 8.

    @camposmilaa "OOP to me means only messaging, local retention and

    protection and hiding of state-process, and extreme late-binding of all things." Alan Kay
  4. 9.

    @camposmilaa "The big idea is messaging [...] The key in

    making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be" Alan Kay
  5. 10.

    @camposmilaa ANALISE DE RISCO - data - resultado IMÓVEL -

    endereço - valor CLIENTE - cpf - nome - data de nascimento
  6. 59.

    @camposmilaa Solicitei um empréstimo Preenchi o cadastro Coloquei a casa

    como garantia Meu crédito foi aprovado 1. 2. 3. 4. 5.
  7. 60.

    @camposmilaa Solicitei um empréstimo Preenchi o cadastro Coloquei a casa

    como garantia Meu crédito foi aprovado O empréstimo foi concedido 1. 2. 3. 4. 5.
  8. 70.

    @camposmilaa Banco de dados Event Store id event 1 Crédito

    solicitado {id: 1, valor: 50.000, motivo: Reforma} 2 Crédito aprovado {id: 1, valor-máximo: 70.000}
  9. 77.

    @camposmilaa ANALISE DE RISCO - data - resultado IMÓVEL -

    endereço - valor CLIENTE - cpf - nome
  10. 78.

    @camposmilaa Modelo tradicional Cliente id cpf nome 1 11122233344 Pedro

    Salomão 2 55566677788 Maria Rita 3 98765432100 Sandy & Junior
  11. 79.

    @camposmilaa Modelo tradicional Cliente id cpf nome 1 11122233344 Pedro

    Salomão 2 55566677788 Maria Rita 3 98765432100 Sandy
  12. 80.

    @camposmilaa Event Sourcing Event Store Cliente Cadastrado {nome: Sandy &

    Junior, cpf: 12345678900} Solicitação criada {valor: 50.000, motivo: Reforma} Garantia Adicionada {tipo: Casa, valor: 200.000} Nome Alterado {nome: Sandy}
  13. 83.

    @camposmilaa Cliente preenche cadastro Cliente adiciona documento Doc removido Doc

    adicionado Solicitação criada Cliente remove documento
  14. 84.

    @camposmilaa Cliente preenche cadastro Cliente adiciona documento Cliente adiciona documento

    Doc adicionado Doc removido Doc adicionado Solicitação criada Cliente remove documento
  15. 85.

    @camposmilaa Cliente preenche cadastro Cliente adiciona documento Cliente cadastra garantia

    Cliente adiciona documento Garantia adicionada Doc adicionado Doc removido Doc adicionado Solicitação criada Cliente remove documento
  16. 86.

    @camposmilaa Cliente preenche cadastro Cliente adiciona documento Cliente cadastra garantia

    Cliente adiciona documento Creditas aprova o crédito Crédito aprovado Garantia adicionada Doc adicionado Doc removido Doc adicionado Solicitação criada Cliente remove documento
  17. 96.

    @camposmilaa CQRS + Event Sourcing Event Sourcing Banco de leitura

    evento 1, id: 2 evento 2, id: 1 evento 1, id: 1 id: 1, estado 2 id: 2, estado 1
  18. 102.

    @camposmilaa Saldo disponível Conta Corrente 10.000 Conta Poupança 2.000 Extrato

    Conta Corrente data valor descrição 03/05 +7000 Salário 05/05 +4000 Freela 06/05 -1000 Aluguel
  19. 103.

    @camposmilaa Adiciona atributo aos dados do veículo app/vehicle_data/get_vehicle_data.rb | 2

    +- spec/infra/get_molicar_versions_spec.rb | 10 ++++++---- spec/use_case/fetch_vehicle_data_spec.rb | 2 +- spec/vehicle_data/get_vehicle_data_spec.rb | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)
  20. 133.

    @camposmilaa Event Driven Architecture Não é complicada Auditoria "de graça"

    Serviços autônomos Reflete a realidade Escalável
  21. 134.

    @camposmilaa Não é complicada Auditoria "de graça" Serviços autônomos Reflete

    a realidade Escalável Análises complexas Event Driven Architecture