Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microserviços com EventFlow

Microserviços com EventFlow

Microserviços com EventFlow

Luiz Eduardo Queiroz

TOTVS Developers

August 26, 2020
Tweet

More Decks by TOTVS Developers

Other Decks in Programming

Transcript

  1. TODOS OS DIREITOS RESERVADOS
    MS +
    EVENTFLOW
    Janeiro /2020
    /Eduardo Queiróz

    View Slide

  2. 2

    View Slide

  3. 3
    EF is a basic CQRS+ES framework
    designed to be easy to use.
    WELCOME TO
    EVENT FLOW
    01

    View Slide

  4. 4
    • Único ponto de falha
    • Alto custo de escalabilidade
    • Serviços inalterados no deploy
    • Codebase enorme
    • Curva de aprendizagem elevada
    • Arquitetura complexa
    MONOLITO

    View Slide

  5. 5
    • Alta independência
    • Alta escalabilidade
    • Manutenção simplificada
    • Deploy com segurança
    • Hospedagem de baixo custo
    MICROSERVIÇOS

    View Slide

  6. 6
    SOLUÇÃO PROPOSTA
    Docker provendo os containers
    de infraestrutura e aplicação.
    Docker
    Aplicações construídas
    utilizando .Net Core
    .Net Core
    Biblioteca para auxiliar no
    desenvolvimento da aplicação
    EventFlow
    Message-broker open-source
    que implementa o protocol
    AMQP
    RabbitMQ

    View Slide

  7. 7
    TIPS
    02
    Algumas dicas para melhor
    utilização do EventFlow

    View Slide

  8. 8
    TIPS
    • Agregados com muitos eventos podem afetar o desempenho da sua aplicação.
    • Com o snapshot podemos capturar o estado a cada N eventos.
    • Ao invés de carregar todo o histórico o snapshot mais recente é carregado.
    SNAPSHOTS

    View Slide

  9. 9
    TIPS
    • Abstrai a necessidade de escrever queries para consultas.
    • Simplesmente recebe o identificador e retorna a entidade.
    QUERYPROCESSOR

    View Slide

  10. 10
    TIPS
    • Representação da entidade
    • Decorada com a interface IReadModel e IReadModelFor, onde definimos o agregado, o identificador
    e qual evento será o responsável por persistir a mesma.
    READMODEL

    View Slide

  11. 11
    TIPS
    • Semelhante ao já aplicado Command Pattern
    • Responsável por interpretar um comando (solicitação) e combiná-lo com um manipulador
    (execução).
    • A diferença básica é a inclusão do agregado e do identificador.
    COMMAND

    View Slide

  12. 12
    TIPS
    • A diferença básica é necessidade de utilizar a interface ISubscribeSynchronousTo
    • Ela é a responsável por interpreter a mensagem no EventBus e executar as ações posteriormente.
    EVENTS

    View Slide

  13. 13
    HANDS ON!
    03

    View Slide

  14. #SOMOSTOTVERS
    • Tecnologia + Conhecimento são nosso DNA.
    • O sucesso do cliente é o nosso sucesso.
    • Valorizamos gente boa que é boa gente.
    totvs.com
    @totvs
    /totvs company/totvs
    totvs.store
    @totvs
    OBRIGADO
    EDUARDO QUEIRÓZ
    Inovação - Hospitalidade
    [email protected]

    View Slide