Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Como tratar cenários de alta concorrência usa...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Walkirya Heto
December 19, 2017
Technology
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Como tratar cenários de alta concorrência usando o modelo de atores e o framework Akka
This presentation was made in Brazil at DevFest XP By 99 '17 (
https://devfestxp.com/
)
Walkirya Heto
December 19, 2017
Other Decks in Technology
See All in Technology
How to Design Configuration for Rails Applications
willnet
1
830
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
120
Metadata - Section 1: HTML Basics
mohab1
0
120
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
160
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
290
hackers_champloo_2026_tidb
makocchi
0
170
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
280
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
290
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1.2k
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
How to build a perfect <img>
jonoalderson
1
6.1k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Amusing Abliteration
ianozsvald
1
350
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
Discover your Explorer Soul
emna__ayadi
2
1.3k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Transcript
Como tratar cenários de alta concorrência usando o modelo de
atores e o framework Akka Walkirya Heto
Quem 99ner, Scala, São Paulo www.linkedin.com/in/walkiryaheto https://twitter.com/walheto
[email protected]
Escrever programas concorrentes é difícil! • Threads • Locks •
Race conditions ...
Programação tradicional vs Arquiteturas modernas
Encapsulamento
None
Com múltiplas threads...
Fonte:https://www.devmedia.com.br/akka-programac ao-concorrente/30714 Complexidade Locks => deadlocks Limitam a concorrência =>
lentidão e aumento custo CPU
Locks só funcionam bem localmente
Múltiplas máquinas levam a bloqueios distribuídos, menos eficientes
Sem bloqueios suficientes, o estado fica corrompido. Com muitos bloqueios,
o desempenho sofre e facilmente leva a deadlocks.
distribuição Troca de mensagens compartilhamento de estado locks assincronicidade desacoplamento
Modelo de Atores
ATORES
None
None
Atores • Encapsula estado e comportamento • Pode mudar de
estado conforme a mensagem que receber • Se comunica através de mensagem ao invés de chamar métodos • Um ator pode enviar uma mensagem e continuar sem bloquear. Portanto, pode realizar mais na mesma quantidade de tempo.
PROPRIEDADES
Quando um ator recebe uma mensagem, ele pode:
- Mudar seu estado ou comportamento - Enviar mensagens para
outros atores - Criar um número finito de atores filhos
O desafio das arquiteturas modernas
None
Desafio Escrever aplicações que tem volume alto de requisições e
necessitam de alta disponibilidade
None
None
Aplicações altamente orientadas, distribuídas e resilientes na JVM Feita em
scala
None
Lightbend case-studies https://www.lightbend.com/case-studies
PayPal • AKKA, Scala, Kafka e Akka Streams • 1
bi transações por dia usando 8 vms • 80% menos código • 10x performance
Abstração de alto nível
Escala verticalmente e horizontalmente
Escala verticalmente (melhor uso dos recursos) e horizontalmente (múltiplos servidores)
Atores + Stream
Resiliente
Alta performance
Alta performance + 50 milhões de msg/seg em 1 máquina
2.5 milhões de atores por GB
None
Processa uma mensagem por vez
O envio de mensagens não transfere o thread de execução
do remetente para o destino -> evita locking e blocking Fonte: Learning Akka: The Course Overview from Udacity
Transparência de localização
Uma mensagem nunca será entregue duplicada
Não há senso de tempo Não há timeout
Pontos Não há ordem de entrega de mensagens garantida
"LET IT FAIL"
None
Supervisão
None
Estratégias de supervisão 1. Resume o filho 2. Reinicia o
filho 3. Termina o filho 4. Escala a falha
Estratégias de supervisão OneForOneStrategy: pai aplica a ação para o
filho especificamente AllForOneStrategy: pai aplica sua escolha para todos os filhos
Sistema de recuperação de mensagens
Recursos do framework • AKKA http • AKKA cluster •
AKKA router • Alpakka: stream processing com backpressure • AKKA persistence
None
Documentação: https://akka.io Carl Hewitt, Actor Model of Computation: Scalable Robust
Information Systems Artigos legais: https://www.lightbend.com/blog/the-six-questions-architects-ask-about-using-akka-in-prod uction https://www.devmedia.com.br/akka-programacao-concorrente/30714 https://www.toptal.com/scala/concurrency-and-fault-tolerance-made-easy-an-intro-to-akka Vídeos legais: https://www.youtube.com/watch?v=lPTqcecwkJg https://www.youtube.com/watch?v=GBvtE61Wrto Curso legal: Learning Akka: The Course Overview from Udacity
Estamos contratando!
OBRIGADA!!