O documento discute arquitetura baseada em eventos com serverless, apresentando Evandro Pires da Silva e Tatiana Ribeiro Nunes. Eles descrevem um autorizador de débito de cartão, seu processo, implementação com Java e serverless framework, e enfatizam a importância de testes.
1. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 1/19
ARQUITETURA BASEADA EMARQUITETURA BASEADA EM
EVENTOS COM SERVERLESSEVENTOS COM SERVERLESS
COMO TESTAR?COMO TESTAR?
2. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 2/19
EVANDRO PIRES DA SILVAEVANDRO PIRES DA SILVA
Arquiteto de soluções na Cresol Confederação
Filho, afilhado e irmão de programador ( talvez
pai de programador(a) no futuro :) )
Programador desde meus 12 anos
Programador Java® desde 2005
3. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 3/19
TATIANA RIBEIRO NUNESTATIANA RIBEIRO NUNES
QA Senior na Cresol Confederação
Formada em Análise de Sistemas com 17 anos de
experiência em Testes de So ware e Qualidade
Começou a carreira em 2002 na HP em Porto Alegre
Atuando em diversos projetos de grande porte, com
destaque em sistemas financeiros
4. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 4/19
DISCLAIMERDISCLAIMER
Esta é uma apresentação pessoal, portanto não
representa a visão institucional da Cresol
Confederação
Todas as informações aqui apresentadas são
fictícias e não expõem dados sensíveis da
instituição e do sistema financeiro
5. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 5/19
OBJETIVOOBJETIVO
Mostrar formas de garantir qualidade em aplicações
baseadas em evento
Demonstrar como testar cenários reais de
instituição financeira
7. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 7/19
O QUE É UM AUTORIZADOR DEO QUE É UM AUTORIZADOR DE
DÉBITO DE CARTÃO?DÉBITO DE CARTÃO?
8. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 8/19
O QUE É?O QUE É?
É o sistema que autoriza um débito em conta corrente
na instituição financeira quando efetuamos um
pagamento utilizando cartão nas famosas
maquininhas de cartão
9. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 9/19
RESTRIÇÕESRESTRIÇÕES
Deve rodar no máximo em 4 segundos
Comunicação segura
10. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 10/19
REQUISITOSREQUISITOS
Disponibilidade 24/7
Escalabilidade: deve escalar facilmente com a
demanda
Exemplo: Black Friday, Dia das mães, etc
12. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 12/19
AGORA, FALANDOAGORA, FALANDO
TECNICAMENTE...TECNICAMENTE...
13. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 13/19
PROCESSOPROCESSO
Find credit card
Is that a valid
credit card?
Find balance
Have sufficient
funds?
Add provisional
debit (Pending)
Yes
No
Yes
No
Add a message
to a queue
Queue Listener
Executes debit
transaction
Changes
provisional debit
to registered
14. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 14/19
COMO FOI FEITO?COMO FOI FEITO?
Java
Serverless Framework
IBM Cloud Functions
Composer
PostgreSQL
BDD
Cucumber com JUnit
15. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 15/19
SHOW ME THE CODESHOW ME THE CODE
16. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 16/19
AUTORIZADORAUTORIZADOR
teste autorizadorteste autorizador
17. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 17/19
LEGADOLEGADO
teste legadoteste legado
18. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 18/19
CONCLUSÕESCONCLUSÕES
Keep it simple!
Testes unitários
Requisitos funcionais
Requisitos não funcionais
Disseminar a cultura da qualidade
Relacionamento / Participação
19. 28/05/2019 Autorizador de débito de cartão
localhost:8000/?print-pdf 19/19
OBRIGADO!OBRIGADO!
DÚVIDAS? PERGUNTAS?DÚVIDAS? PERGUNTAS?
linkedin.com/in/epiresdasilva linkedin.com/in/tatiana-
ribeiro-nunes
github.com/epiresdasilva/debit-authorizer