Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
High Performance Architecture Patterns
Search
Celso Crivelaro
May 12, 2016
Technology
1
460
High Performance Architecture Patterns
Celso Crivelaro
May 12, 2016
Tweet
Share
More Decks by Celso Crivelaro
See All by Celso Crivelaro
Sistemas de Recomendação
celsocrivelaro
2
210
Big Data para Gerentes de Projetos
celsocrivelaro
0
57
FileSystems em Ruby com FUSE
celsocrivelaro
2
64
Padrões e Boas Práticas de Teste de Tela
celsocrivelaro
0
410
Projeto de APIs
celsocrivelaro
0
160
Testing Network Conditions with ToxiProxy
celsocrivelaro
1
380
Testing Network Conditions with ToxiProxy
celsocrivelaro
0
80
Actor Model in Ruby
celsocrivelaro
0
250
Separando as regras de negócios do Rails
celsocrivelaro
0
180
Other Decks in Technology
See All in Technology
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
200
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
270
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
430
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
450
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
200
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
1
290
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
310
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
250
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
520
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
9.5k
AWSで推進するデータマネジメント
kawanago
1
1.2k
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
For a Future-Friendly Web
brad_frost
180
9.9k
Music & Morning Musume
bryan
46
6.8k
The Cult of Friendly URLs
andyhume
79
6.6k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
BBQ
matthewcrist
89
9.8k
Navigating Team Friction
lara
189
15k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
111
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Transcript
High Performance Architecture Patterns Celso Crivelaro @celsocrivelaro
$ whoami > Celso Crivelaro - Engineer and MSc in
Computer Engineering - Dev Ruby / Python / Java @celsocrivelaro http://crivelaro.me
None
None
SMTP Locaweb - Transaction email platform - Fast and high
quality email sending - Live reports - Integration by SMTP Protocol and HTTP API - 2,5 Millions of messages per day - + 2 years
None
Platforms
None
None
None
None
High Availability
Resource Consumption
None
Disk Memory Band- width Processor time Logs GC Open Connections
Deadlocks Stop all disk activities Swap Slowness Services stop responding Queues Amount Workers Slowness
Integrations
Integrations always fails!
Integration Fails always Internal External DB API Storage Network API
ISP Hop Cloud
Map hidden integrations E.g. DNS
Fail Fast
Failing Fast reduces transient errors
Timeouts
Never trust in default timeouts
Threads Timeouts to get rid of deadlocls Internal Little timeout
External Depends: The least possible
Retry
1 2 3 5 8 n Fibonacci Proportion ...
Isolate Critical Components
Panel / API Painel Web Internal API - HTTP Resources
Connection Pool App Server Business Rules Integrations
App Internal API App Panel Painel Web API - HTTP
Resources Conn. Pool App Server Business Rules Integrations Resources Conn. Pool App Server Business Rules Integrations
Less Components == Less Problems
None
Redundancy
Health Check
None
None
Scalability
CAP Theorem
Availability Consistency Tolerance to network partition
Availability Consistency Partition Tolerance to network partition whether system is
available or not
Availability Consistency Tolerance to network partition Same data in all
nodes
Availability Consistency Tolerance to network partition Tolerante when a network
fails
Availability Consistency Partition Tolerance Postgres
Availability Consistency Partition Tolerance DNS
Availability Consistency Partition Tolerance Protocols
Evaluate which one is acceptable to your platform
Pool of Resources
App Connection Resource Connection Connection Connection Connection
Controlled Timeouts Controlled Resource Consumption Avoid opening/closing connections overhead
Cache
Make your data closer to your app
When use cache App API DB
Default Cache Strategy App Cache Source 1 2 3
Hot Cache Strategy App Cache Source 2 1
Load Balacing
LB App App App App
Load Balance Strategy matters!
Decoupled Architecture
Slow Processing Fast processing Asynchronous Processing Authentication Message Transformation MTA
Providers User Message Persistence Consolidation
Background jobs Messaging frameworks
How to discover bottlenecks?
Test your limits... Load Test Stress Test Peak Test
Telemetry
None
Grafana + InfluxDB
Other scalabity patterns
Indexes
Sharding
References
None
None
None
http://use-the-index-luke.com
None
Thank you! Celso Crivelaro @celsocrivelaro
[email protected]