Akka & Akka Streams Construa sistemas distribuídos com atores
Alexandre LourençoSobre o livro
Este livro se destina a desenvolvedores e desenvolvedoras que buscam expandir seus conhecimentos em arquiteturas distribuídas. No mundo em que vivemos, onde cada vez mais temos quantidades insanas de dados trafegando para todos os lados, precisamos entender cada vez mais conceitos que nos permitam processar esses dados com agilidade.
Isso é especialmente verdade em integrações, nas quais temos que constantemente sincronizar dados de um sistema A para um sistema B. Tais sincronismos sempre serão parte da vida de quem desenvolve, seja para integrar o sistema do RH com o controle de acessos de funcionários, ou o módulo de vendas de e-commerce com o ERP Fiscal.
Neste livro, experimentaremos arquiteturas distribuídas com casos que simulam sistemas reais, como integrações com sistemas de arquivos, comunicação com Kafka e bancos de dados, entre outros. Construiremos também uma API REST fictícia de um e-commerce, vendo um exemplo completo de uma aplicação Akka na prática.
Para essa finalidade, aprenderemos sobre os frameworks Akka e Akka Streams e de que forma eles podem nos ajudar a cumprir essa missão.
Akka utiliza o modelo de atores, um modelo que nos permite construirmos aplicações robustas e escaláveis, através de processamento assíncrono e threads. Aprenderemos sobre paralelismo, entendendo de que modo ele nos ajuda a melhorar a escalabilidade de nossos sistemas.
Akka Streams é um framework construído em cima do Akka, que nos permite desenvolver soluções usando o paradigma de streams. Esse paradigma é muito popular em sistemas distribuídos, sendo bastante utilizado junto de ferramentas como o Apache Kafka.
Ele nos permite pensar em soluções como fluxos de dados, permitindo que as soluções possam executar de modo bastante escalável. Para esse fim, Akka Streams é uma ótima alternativa por permitir que implementemos esse paradigma em cima de um framework já consolidado como o Akka.
Para quem é o livro
Para melhor aproveitar este livro, é recomendado que você tenha conhecimentos básicos de linguagem de programação, bem como o uso de Docker.
Conhecimentos em Scala também podem ajudar, dado que será a linguagem utilizada, entretanto, apenas a sintaxe básica será necessária, e todos os conceitos que venham a ser utilizados serão devidamente explicados, fazendo analogias com a linguagem Java. Portanto, não é necessário ser um expert na linguagem para acompanhar!
Se quiser saber mais sobre Scala, a Casa do Código tem um livro sobre essa linguagem: Scala: Como escalar sua produtividade, de Paulo Siqueira.
Sumário
- 1 Era uma vez um sistema...
- 2 Paralelismo: o que é e por que você deveria se interessar
- 2.1 Processos
- 2.2 Threads
- 2.3 Concorrência e paralelismo
- 2.4 Compartilhamento de dados entre threads
- 2.5 Deadlocks
- 3 Trabalhando com atores no Akka
- 3.1 Atores
- 3.2 Nosso primeiro ator
- 3.3 Nosso segundo ator
- 3.4 Múltiplas mensagens e observadores (watchers)
- 3.5 Entregando mensagens com atraso (delayed messages)
- 4 Ciclo de vida e tratativa de erros em atores
- 4.1 Estados de um ator
- 4.2 Supervisores
- 4.3 Atores de ciclo de vida
- 4.4 DeadLetters
- 5 Construindo uma API: parte 1 - criando a persistência e serviços
- 5.1 Montando o ambiente
- 5.2 Fazendo a nossa primeira chamada HTTP
- 5.3 Modelando o acesso a banco de dados da nossa API
- 5.4 Conceitos básicos do Slick e criando nossos repositórios
- 5.5 Criando os serviços da aplicação
- 6 Construindo uma API: parte 2 - criando os endpoints e testando
- 6.1 Criando os endpoints da aplicação
- 6.2 Testando os endpoints
- 6.3 Acessando uma API externa
- 6.4 Medindo a robustez da nossa aplicação
- 7 Introdução ao Akka Streams
- 7.1 Conceitos do Akka Streams
- 7.2 Nossa primeira stream
- 8 Integrações do mundo real com Akka Streams
- 8.1 Integrando um sistema de arquivos com o Apache Kafka
- 8.2 Integrando o Kafka com uma base de dados relacional
- 8.3 Integrando o Kafka com APIs REST
- 9 Testes automatizados com Akka e Akka Streams
- 9.1 Testes no Akka
- 9.2 Testes no Akka Streams
- 10 Conclusão
Dados do produto
- Número de páginas:
- 184
- ISBN:
- 978-65-86110-90-6
- Data publicação:
- 12/2021