tdc2016sp - trilha microservices

47
Globalcode – Open4education Microservices e Event Sourcing em Larga Escala Vinicius Vieira Gomes vvgomes.com ThoughtWorks

Upload: tdc-globalcode

Post on 23-Feb-2017

295 views

Category:

Education


2 download

TRANSCRIPT

Page 1: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Microservices e Event Sourcing em Larga Escala

Vinicius Vieira Gomesvvgomes.com

ThoughtWorks

Page 2: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Agenda

Contexto

CRUD & REST

Event Sourcing

CQRS

Event Driven Architecture

Conclusões

Mais Informações

Page 3: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

Page 4: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

Uma plataforma de serviços bancários

Page 5: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

8 times

70 pessoas

2 países

Dezenas de pontos de integração

Page 6: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

Requisitos

Page 7: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

RequisitosAuditoria

Page 8: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

RequisitosAuditoria

AML / Fraud

Page 9: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

RequisitosAuditoria

AML / Fraud

BI / Analytics

Page 10: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

RequisitosAuditoria

AML / Fraud

BI / Analytics

Performance para leitura

Page 11: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

RequisitosAuditoria

AML / Fraud

BI / Analytics

Performance para leitura

Consistência para escrita

Page 12: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Contexto

RequisitosAuditoria

AML / Fraud

BI / Analytics

Performance para leitura

Consistência para escrita

Arquitetura Open/Closed

Page 13: TDC2016SP - Trilha Microservices

Globalcode – Open4education

CRUD & REST

Page 14: TDC2016SP - Trilha Microservices

Globalcode – Open4education

CRUD & Rest

Page 15: TDC2016SP - Trilha Microservices

Globalcode – Open4education

CRUD & Rest

Page 16: TDC2016SP - Trilha Microservices

Globalcode – Open4education

CRUD & REST

Em resumo:Estado atual é tudo que temos

Difícil representar “User Intent” com fidelidade

Serviços precisam se conhecer

Leitura e escrita no mesmo modelo

Page 17: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Page 18: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Pense em um eCommerce CRUD

Page 19: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 1Usuário começa a navegar nos produtos

Page 20: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 2Usuário adiciona um produto no carrinho

Page 21: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 3Usuário adiciona mais um produto no carrinho

Page 22: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 4Usuário remove um produto do carrinho

Page 23: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 5Usuário finaliza a compra

Page 24: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

O mesmo eCommerce com Event Sourcing

Page 25: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 1Usuário começa a navegar nos produtos

Page 26: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 2Usuário adiciona um produto no carrinho

Page 27: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 3Usuário adiciona mais um produto no carrinho

Page 28: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 4Usuário remove um produto do carrinho

Page 29: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Momento 5Usuário finaliza a compra

Page 30: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Page 31: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Domain EventsPersistem acontecimentos no sistema

Payload e metadados

Imutáveis e imortais

Page 32: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Domain Events

Page 33: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Commands

Page 34: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Sourcing

Aggregates

Page 35: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Command Query Responsibility Segregation

Page 36: TDC2016SP - Trilha Microservices

Globalcode – Open4education

CQRS

Event Store éEficiente para escrita

Não tão eficiente para leitura

Page 37: TDC2016SP - Trilha Microservices

Globalcode – Open4education

CQRS

Command Query Responsibility Segregation

Page 38: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Driven Architecture

Page 39: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Driven Architecture

TecnologiasJava 8

Axon

Spring Boot

ActiveMQ

Oracle

MongoDB

Hadoop / Hive

Page 40: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Driven Architecture

Page 41: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Driven Architecture

Serviços desacoplados

Bounded Contexts

Consistência global

Page 42: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Driven Architecture

Demo

Page 43: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Event Driven Architecture

DesafiosCQRS + REST

vvgomes.com /cqrs-and-rest

Upcasters

Snapshots

Event Replay

Sagas

Page 44: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Conclusões

Page 45: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Conclusões

RequisitosAuditoria

AML / Fraud

BI / Analytics

Performance para leitura

Consistência para escrita

Arquitetura Open/Closed

Page 46: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Mais Informações

Blog do Martin Fowler

Greg Young

Chris Richardson

Axon Framework

Datomic

Page 47: TDC2016SP - Trilha Microservices

Globalcode – Open4education

Microservices e Event Sourcing em Larga Escala

Vinicius Vieira Gomesvvgomes.com

ThoughtWorks