Download - TDC2016SP - Trilha Microservices
![Page 1: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/1.jpg)
Globalcode – Open4education
Microservices e Event Sourcing em Larga Escala
Vinicius Vieira Gomesvvgomes.com
ThoughtWorks
![Page 2: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/2.jpg)
Globalcode – Open4education
Agenda
Contexto
CRUD & REST
Event Sourcing
CQRS
Event Driven Architecture
Conclusões
Mais Informações
![Page 3: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/3.jpg)
Globalcode – Open4education
Contexto
![Page 4: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/4.jpg)
Globalcode – Open4education
Contexto
Uma plataforma de serviços bancários
![Page 5: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/5.jpg)
Globalcode – Open4education
Contexto
8 times
70 pessoas
2 países
Dezenas de pontos de integração
![Page 6: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/6.jpg)
Globalcode – Open4education
Contexto
Requisitos
![Page 7: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/7.jpg)
Globalcode – Open4education
Contexto
RequisitosAuditoria
![Page 8: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/8.jpg)
Globalcode – Open4education
Contexto
RequisitosAuditoria
AML / Fraud
![Page 9: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/9.jpg)
Globalcode – Open4education
Contexto
RequisitosAuditoria
AML / Fraud
BI / Analytics
![Page 10: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/10.jpg)
Globalcode – Open4education
Contexto
RequisitosAuditoria
AML / Fraud
BI / Analytics
Performance para leitura
![Page 11: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/11.jpg)
Globalcode – Open4education
Contexto
RequisitosAuditoria
AML / Fraud
BI / Analytics
Performance para leitura
Consistência para escrita
![Page 12: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/12.jpg)
Globalcode – Open4education
Contexto
RequisitosAuditoria
AML / Fraud
BI / Analytics
Performance para leitura
Consistência para escrita
Arquitetura Open/Closed
![Page 13: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/13.jpg)
Globalcode – Open4education
CRUD & REST
![Page 14: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/14.jpg)
Globalcode – Open4education
CRUD & Rest
![Page 15: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/15.jpg)
Globalcode – Open4education
CRUD & Rest
![Page 16: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/17.jpg)
Globalcode – Open4education
Event Sourcing
![Page 18: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/18.jpg)
Globalcode – Open4education
Event Sourcing
Pense em um eCommerce CRUD
![Page 19: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/19.jpg)
Globalcode – Open4education
Event Sourcing
Momento 1Usuário começa a navegar nos produtos
![Page 20: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/20.jpg)
Globalcode – Open4education
Event Sourcing
Momento 2Usuário adiciona um produto no carrinho
![Page 21: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/21.jpg)
Globalcode – Open4education
Event Sourcing
Momento 3Usuário adiciona mais um produto no carrinho
![Page 22: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/22.jpg)
Globalcode – Open4education
Event Sourcing
Momento 4Usuário remove um produto do carrinho
![Page 23: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/23.jpg)
Globalcode – Open4education
Event Sourcing
Momento 5Usuário finaliza a compra
![Page 24: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/24.jpg)
Globalcode – Open4education
Event Sourcing
O mesmo eCommerce com Event Sourcing
![Page 25: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/25.jpg)
Globalcode – Open4education
Event Sourcing
Momento 1Usuário começa a navegar nos produtos
![Page 26: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/26.jpg)
Globalcode – Open4education
Event Sourcing
Momento 2Usuário adiciona um produto no carrinho
![Page 27: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/27.jpg)
Globalcode – Open4education
Event Sourcing
Momento 3Usuário adiciona mais um produto no carrinho
![Page 28: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/28.jpg)
Globalcode – Open4education
Event Sourcing
Momento 4Usuário remove um produto do carrinho
![Page 29: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/29.jpg)
Globalcode – Open4education
Event Sourcing
Momento 5Usuário finaliza a compra
![Page 30: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/30.jpg)
Globalcode – Open4education
Event Sourcing
![Page 31: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/31.jpg)
Globalcode – Open4education
Event Sourcing
Domain EventsPersistem acontecimentos no sistema
Payload e metadados
Imutáveis e imortais
![Page 32: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/32.jpg)
Globalcode – Open4education
Event Sourcing
Domain Events
![Page 33: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/33.jpg)
Globalcode – Open4education
Event Sourcing
Commands
![Page 34: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/34.jpg)
Globalcode – Open4education
Event Sourcing
Aggregates
![Page 35: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/35.jpg)
Globalcode – Open4education
Command Query Responsibility Segregation
![Page 36: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/36.jpg)
Globalcode – Open4education
CQRS
Event Store éEficiente para escrita
Não tão eficiente para leitura
![Page 37: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/37.jpg)
Globalcode – Open4education
CQRS
Command Query Responsibility Segregation
![Page 38: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/38.jpg)
Globalcode – Open4education
Event Driven Architecture
![Page 39: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/39.jpg)
Globalcode – Open4education
Event Driven Architecture
TecnologiasJava 8
Axon
Spring Boot
ActiveMQ
Oracle
MongoDB
Hadoop / Hive
![Page 40: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/40.jpg)
Globalcode – Open4education
Event Driven Architecture
![Page 41: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/41.jpg)
Globalcode – Open4education
Event Driven Architecture
Serviços desacoplados
Bounded Contexts
Consistência global
![Page 42: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/42.jpg)
Globalcode – Open4education
Event Driven Architecture
Demo
![Page 43: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/43.jpg)
Globalcode – Open4education
Event Driven Architecture
DesafiosCQRS + REST
vvgomes.com /cqrs-and-rest
Upcasters
Snapshots
Event Replay
Sagas
![Page 44: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/44.jpg)
Globalcode – Open4education
Conclusões
![Page 45: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/45.jpg)
Globalcode – Open4education
Conclusões
RequisitosAuditoria
AML / Fraud
BI / Analytics
Performance para leitura
Consistência para escrita
Arquitetura Open/Closed
![Page 46: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/46.jpg)
Globalcode – Open4education
Mais Informações
Blog do Martin Fowler
Greg Young
Chris Richardson
Axon Framework
Datomic
![Page 47: TDC2016SP - Trilha Microservices](https://reader030.vdocuments.us/reader030/viewer/2022020410/58ae0dc91a28aba3178b57a7/html5/thumbnails/47.jpg)
Globalcode – Open4education
Microservices e Event Sourcing em Larga Escala
Vinicius Vieira Gomesvvgomes.com
ThoughtWorks