Use o código e tenha 10% de desconto!

Sistemas reativos Não confundir com sistemas radioativos

Guilherme Virgs Moraes

*Você terá acesso às futuras atualizações do livro.

Conteúdo

Com cada vez mais conexões, mais dados e usuários mais exigentes, manter a responsividade de um sistema de microsserviços tem se tornado uma tarefa dolorosa. Por sorte, isso não precisa ser assim. É para amenizar essa dor que existem os sistemas reativos. Sistemas criados como reativos são muito mais flexíveis, desacoplados e escaláveis, o que os torna mais fáceis para desenvolver e mais abertos a mudanças.

Neste livro, Guilherme Moraes aborda a aplicação da perspectiva reativa no desenvolvimento para garantir que seus sistemas sejam mais resilientes, elásticos e responsivos. Você passará por conceitos complexos da Arquitetura de Software e sistemas distribuídos, mas em uma aprendizagem envolvente com doses cavalares de humor e descontração, estabelecendo relações práticas com muito do que você já faz em seu dia a dia. E, meio sem perceber, você ampliará sua perspectiva sobre software e nunca mais reagirá da mesma maneira ao escutar a seguinte pergunta: "A gente já chegou?".

Saiba o que você vai aprender

 

Sumário

Parte 1: A qualidade e o propósito

  • 1 O bom e o ruim
  • 1.1 O propósito do código
  • 1.2 O código bom
  • 1.3 Como ler o livro

Parte 2: Mais uma vez microsserviços...

  • 2 Afinal, o que são microsserviços?
  • 2.1 Definição de microsserviços
  • 2.2 Justificativa
  • 2.3 Conclusão
  • 3 Características dos microsserviços
  • 3.1 Autonomia, autonomia, autonomia e compensação
  • 3.2 Conclusão
  • 4 Microsserviços e a Orientação a Objetos
  • 4.1 Princípios de OO nos microsserviços
  • 4.2 Princípios SOLID nos microsserviços
  • 4.3 Conclusão

Parte 3: Sistemas reativos

  • 5 Um discurso de ódio à proatividade
  • 5.1 Diga, não peça
  • 5.2 Conclusão
  • 6 A Reatividade diz "olar"
  • 6.1 Propriedades reativas
  • 6.2 Conclusão
  • 7 Dificuldades da reatividade
  • 7.1 Distribuição de dados
  • 7.2 Desempenho reativo
  • 7.3 Conversão à reatividade
  • 7.4 Conclusão
  • 8 Orientação a Objeto Orientada a Mensagens Reativas
  • 8.1 Regras da OOOMR
  • 8.2 Serviços | Objetos
  • 8.3 E não é que funciona?
  • 8.4 Resultado do experimento
  • 8.5 Conclusão

Parte 4: Orientação a Mensagens

  • 9 Mensagens distribuídas
  • 9.1 Conceito
  • 9.2 Decomposição de mensagens
  • 9.3 CQRS
  • 9.4 Orientação a Mensagens vs Orientação a Eventos
  • 9.5 Conclusão
  • 10 Controle de vazão
  • 10.1 Processamento em lote
  • 10.2 Contrapressão
  • 10.3 Conclusão
  • 11 Mensagens poliglotas
  • 11.1 Protocolos de comunicação
  • 11.2 Fluxos poliglotas
  • 11.3 Conclusão
  • 12 Por que (de novo) REST/http?
  • 12.1 Dando número aos bois
  • 12.2 Por que http?
  • 12.3 Por que não http?
  • 12.4 Conclusão
  • Parte 5: Elasticidade

    • 13 Distribuição elástica
    • 13.1 Química dos dados
    • 13.2 Transações ACID
    • 13.3 Transações BASE
    • 13.4 Balanceamento ACID-BASE
    • 13.5 Conclusão
    • 14 Jogo de dados
    • 14.1 Disputa de dados
    • 14.2 Transações frustradas
    • 14.3 Teorema CAP
    • 14.4 Escalabilidade
    • 14.5 Escalabilidade dinâmica
    • 14.6 Técnicas de escalabilidade
    • 14.7 Conclusão
    • 15 Inconsistência distribuída
    • 15.1 Erros de fluxos concorrentes
    • 15.2 Princípio do Escritor Único
    • 15.3 Lá e de volta outra vez: ACID 2.0
    • 15.4 Conclusão
    • 16 O inferno da consistência
    • 16.1 O que é consistência
    • 16.2 Consistência no mundo distribuído
    • 16.3 Modelos de consistência
    • 16.4 Conclusão

    Parte 6: Resiliência

    • 17 Fluxos resilientes
    • 17.1 Disponibilidade
    • 17.2 Defeitos, erros e falhas
    • 17.3 Padrões de resiliência
    • 17.4 A resiliência corrói a robustez
    • 17.5 Conclusão
    • 18 Transações distribuídas
    • 18.1 Uma jornada inesperada
    • 18.2 Confirmação de duas fases (2PC)
    • 18.3 SAGA
    • 18.4 Conclusão
    • 19 Coordenação de fluxos
    • 19.1 Orquestração
    • 19.2 Coreografia
    • 19.3 Orquestração vs. coreografia
    • 19.4 Abordagem híbrida
    • 19.5 Conclusão
    • 20 Observabilidade de sistemas
    • 20.1 Observabilidade
    • 20.2 Alertas
    • 20.3 Pilares da observabilidade
    • 20.4 Conclusão

    Parte 7: Responsividade

    • 21 O negócio e a responsividade
    • 21.1 Capacidade de resposta
    • 21.2 Usuário vs. desenvolvedor
    • 21.3 O propósito do sistema
    • 21.4 Conclusão

    Parte 8: Considerações finais

    • 22 Fim
    • 23 Bibliografia

Autor

Guilherme Virgs Moraes

Nascido e criado em Fortaleza (CE) e também conhecido como a cintura mais solta do oeste, comecei a tentar programar com apenas 13 anos e hoje, orgulhosamente, digo que ainda estou na peleja. Quase 20 anos depois, virei bacharel em Ciências da Computação com ênfase em Engenharia de Software, especialista em Engenharia de Software Ágil e 32% mestre em Computação Aplicada que, pelo andar da carruagem, só devo concluir por volta de 2045. Tive também a oportunidade de trabalhar em empresas das quais me orgulho muito, como ThoughtWorks, iFood e Amazon Web Services (AWS) - Canadá e nas mais diversas áreas, como desenvolvimento web, internet das coisas, sistemas embarcados e até desenvolvimento de jogos. Dedico muito do meu tempo ao desenvolvimento de uma infinidade de projetos pessoais que podem ser conferidos em pagehub.me/virgs e github.com/virgs.

Dados do produto

Número de páginas:
322
ISBN:
978-65-86110-82-1
Data publicação:
09/2021

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter