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

Construindo produtos em uma arquitetura de micr...

Marina Limeira
May 11, 2019
1k

Construindo produtos em uma arquitetura de microsserviços

Com o constante crescimento do Nubank, criar e evoluir um produto são desafios que os diversos times enfrentam. Este desafio fica ainda maior se esta arquitetura deve ser capaz de garantir a segurança e consistência necessárias ao mercado financeiro e, ao mesmo tempo, evitar uma abordagem monolítica centrada em um bancos de dados tradicional. Nessa palestra, iremos mostrar como construimos os produtos de empréstimo pessoal e do programa de pontos (Rewards).

Marina Limeira

May 11, 2019
Tweet

Transcript

  1. Pagamento Fatura (Nuconta) Saldo (Nuconta) Kafka produz consom e {:id-cliente

    Uuid :agencia Num :numero Num :valor Num} {:id-cliente Uuid :agencia Num :numero Num :valor Num :status Num} Fatura (Cartão de Crédito) consome
  2. Dados espalhados em vários serviços Juros rotativo, financiamento, de atraso.

    Analistas e cientistas de dados consomem esses dados nos serviços.
  3. ✨ Mínimo de lógica no front ✨ ✨ Maior abstração

    ✨ ✨ Requisição para 1 serviço ao invés de N ✨
  4. Gerenciamento de pontos + Gerenciamento de compras Assinatura Inscrições BFF

    Rewards Ofertas + Grupos BFF Nubank Datomic Redis
  5. LIÇÕES APRENDIDAS SEPARAÇÃO DE RESPONSABILIDADES O serviço tem que ser

    “dono da verdade” do dado, duplicação é ruim pra consistência.
  6. LIÇÕES APRENDIDAS SEPARAÇÃO DE RESPONSABILIDADES O serviço tem que ser

    “dono da verdade” do dado, duplicação é ruim pra consistência. COMPLEXIDADE DOS FLUXOS Dependendo de como as comunicações funcionam, os fluxos podem ser difíceis de debugar.
  7. LIÇÕES APRENDIDAS SEPARAÇÃO DE RESPONSABILIDADES O serviço tem que ser

    “dono da verdade” do dado, duplicação é ruim pra consistência. COMPLEXIDADE DOS FLUXOS Dependendo de como as comunicações funcionam, os fluxos podem ser difíceis de debugar. MVP x ESCALABILIDADE Soluções menos robustas se adequam melhor ao início de um produto mas é importante observar seu crescimento para entender o que pode ser melhorado.
  8. LIÇÕES APRENDIDAS SEPARAÇÃO DE RESPONSABILIDADES O serviço tem que ser

    “dono da verdade” do dado, duplicação é ruim pra consistência. COMPLEXIDADE DOS FLUXOS Dependendo de como as comunicações funcionam, os fluxos podem ser difíceis de debugar. MVP x ESCALABILIDADE Soluções menos robustas se adequam melhor ao início de um produto mas é importante observar seu crescimento para entender o que pode ser melhorado. BOA ABSTRAÇÃO PARA O FRONT Com microsserviços é comum ter que fazer chamadas a N serviços para lidar com informações.