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
Scaling event driven systems: Node.js and GraphQL
Search
Bogdan Nedelcu
May 31, 2020
Programming
460
0
Share
Scaling event driven systems: Node.js and GraphQL
Bogdan Nedelcu
May 31, 2020
More Decks by Bogdan Nedelcu
See All by Bogdan Nedelcu
Behind GraphQL: A first principles approach
bogdanned
0
470
Graphql on production with AWS
bogdanned
0
510
PiDee Pitch
bogdanned
1
490
Moving a production API from REST & Microservices to GraphQL
bogdanned
0
500
Other Decks in Programming
See All in Programming
Are We Really Coding 10× Faster with AI?
kohzas
0
200
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
4
700
「OSSがあるなら自作するな」は AI時代も正しいか ── Build vs Adopt の新しい判断基準
kumorn5s
7
2.8k
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
160
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
140
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
290
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.9k
書き換えて学ぶTemporal #fukts
pirosikick
2
380
Agentic AI & UI: Arcitecture, HITL, Emerging Standards
manfredsteyer
PRO
0
120
~ 秘伝のタレ化した『神スプシ』と戦う ~ 関数型パラダイムで壊れない仕組みへ
h0r15h0
1
120
🦞OpenClaw works with AWS
licux
1
370
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
1
170
Featured
See All Featured
It's Worth the Effort
3n
188
29k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
380
For a Future-Friendly Web
brad_frost
183
10k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
400
Abbi's Birthday
coloredviolet
2
7.6k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
330
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Being A Developer After 40
akosma
91
590k
KATA
mclloyd
PRO
35
15k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
140
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
280
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Transcript
@bogdanned Bogdan Nedelcu 1 Scaling event driven systems: Node.js and
GraphQL Principal Software Engineer Node.js Global Summit 05.31.2020
@bogdanned Once upon a time there was ... 2
@bogdanned … a monolith 3
@bogdanned … split into microservices 4
@bogdanned … choreographed by events 5
@bogdanned Event driven designs are focused on system behaviour rather
than structure. 6
@bogdanned Node.js ... … an asynchronous event-driven runtime 7
@bogdanned How does Node scales? 8
@bogdanned Requirements - performant - cost effective - reliable, fail
safe 9
@bogdanned Node performs well when the amount of CPU work
per request is relatively “small”. 10
@bogdanned Scale Horizontally 11
@bogdanned Running more instances of a non performant app is
not cost effective. 12
@bogdanned Scale Vertically 13
@bogdanned What about … building apps that leverage the hardware
more? 14
@bogdanned Node inherits the Event Loop model that made Javascript
successful in the browser. 15
@bogdanned Worker threads 16
@bogdanned 17
@bogdanned Can I use worker threads for everything? 18
@bogdanned Spawning workers is expensive if done frequently. 19
@bogdanned How can I use this with GraphQL? 20
@bogdanned GraphQL subscriptions: - server: push data to client -
clients: listen to real time messages 21
@bogdanned 22
@bogdanned In the real world ... 23
@bogdanned 24
@bogdanned Demo 25
@bogdanned 26
@bogdanned Future work - deployment to cloud - add performance
hooks - set up profiling 27
@bogdanned Summing Up - node is a perfect fit for
event driven systems - worker threads improve performance - easily go fullstack with GraphQL 28
@bogdanned thank @you 29
@bogdanned Bogdan Nedelcu Entrepreneurial software engineer with a proven track
record across large IT projects within the finance and construction industry. 30