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
Don't Fear the Walking Dead - How to get rid of...
Search
Sebastian Heuer
May 10, 2016
Technology
0
77
Don't Fear the Walking Dead - How to get rid of a monolith
Sebastian Heuer
May 10, 2016
Tweet
Share
More Decks by Sebastian Heuer
See All by Sebastian Heuer
The State of Asynchronous PHP
sebastianheuer
0
36
Typescript - A Marriage Counselor for Frontend and Backend
sebastianheuer
0
43
The Myth of Untestable Code
sebastianheuer
0
31
Deployment without the Hassle @ IPC 2016
sebastianheuer
1
57
99% is not enough
sebastianheuer
0
120
Don't Fear the Walking Dead - How to get rid of a zombie
sebastianheuer
0
110
A Developer's Survival Guide for the Microservice Era
sebastianheuer
2
380
PHPUGHH - Deployment with OS Packages
sebastianheuer
0
82
How to manage your Project's Toolchain in 2016
sebastianheuer
1
51
Other Decks in Technology
See All in Technology
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
2.9k
[JAWSDAYS2026]Who is responsible for IAM
mizukibbb
0
200
DX Improvement at Scale
ntk1000
3
420
自動テストが巻き起こした開発プロセス・チームの変化 / Impact of Automated Testing on Development Cycles and Team Dynamics
codmoninc
3
1.3k
[JAWS DAYS 2026]私の AWS DevOps Agent 推しポイント
furuton
0
130
生成AIの利用とセキュリティ /gen-ai-and-security
mizutani
1
1.5k
楽しく学ぼう!ネットワーク入門
shotashiratori
0
330
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
260
EMからICへ、二周目人材としてAI全振りのプロダクト開発で見つけた武器
yug1224
5
490
Yahoo!ショッピングのレコメンデーション・システムにおけるML実践の一例
lycorptech_jp
PRO
1
160
GitLab Duo Agent Platform + Local LLMサービングで幸せになりたい
jyoshise
0
200
楽しく学ぼう!コミュニティ入門 AWSと人が つむいできたストーリー
hiroramos4
PRO
1
170
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
The untapped power of vector embeddings
frankvandijk
2
1.6k
The agentic SEO stack - context over prompts
schlessera
0
680
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Odyssey Design
rkendrick25
PRO
2
540
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
A better future with KSS
kneath
240
18k
WCS-LA-2024
lcolladotor
0
480
ラッコキーワード サービス紹介資料
rakko
1
2.6M
Transcript
HOW WE GET RID OF OUR MONOLITH DON’T
None
None
None
How we started • built on top of a standard
e-commerce platform • a lot of custom code to support a wide combination of product options Feature X Feature Y Feature Z Core Code Customization
The challenges of a growing business • serious performance issues
• own developers don’t feel comfortable with the code • adding individual features is too complex • upgrading is hard
Finding a way out
You don’t have to replace everything at once!
What part of the software causes the highest amount of
pain? • category pages • product detail pages
Planning
Current Setup Legacy System Session Storage RDBMS Webserver
Idea Legacy System Session Storage RDBMS Webserver New Software
None
None
FURY Frontend Key-Value Storage getCategoryPage(341); "<html><head>…</head><body>…</body></html>"
None
FURY Frontend Key-Value Storage ["SBU06HE","TEOD3HE","ANW04HD"] Search search("{'category':341, 'filters':{...}}"); getTiles(["SBU06HE","TEOD3HE","ANW04HD"]); ["<div
class="category-item">…</div>", …]
Webserver Key-Value Storage Search FURY Frontend FURY Backend FURY Components
Webserver Key-Value Storage Search FURY Frontend FURY Backend Legacy RDBMS
Legacy System Session Storage Collect & Export
Webserver Key-Value Storage Search FURY Frontend FURY Backend Legacy RDBMS
Legacy System Session Storage FURY Requests 200 OK
Webserver Key-Value Storage Search FURY Frontend FURY Backend Legacy RDBMS
Legacy System Session Storage Requests to Legacy System 404 NOT FOUND
Webserver Key-Value Storage Search FURY Frontend FURY Backend Legacy RDBMS
Legacy System Session Storage Requests to Legacy System 404 NOT FOUND 200 OK
Learnings • we have full responsibility now • no framework
needed • no relational database needed
Goods and Bads • fully object-oriented • easy refactoring thanks
to 100% code coverage • not enough automated acceptance tests • dependencies to legacy software (database changes, API calls)
Deployment
Webserver (Router) Webserver FURY Frontend Server A K/V Storage Search
FURY Backend Webserver FURY Frontend Server B K/V Storage Search FURY Backend
Webserver (Router) Webserver FURY Frontend Server A K/V Storage Search
FURY Backend Webserver FURY Frontend Server B K/V Storage Search FURY Backend active = A
Webserver (Router) Webserver FURY Frontend Server A K/V Storage Search
FURY Backend Webserver FURY Frontend Server B K/V Storage Search FURY Backend active = B
RDBMS Read Slave Webserver FURY Frontend Server A K/V Storage
Search FURY Backend Webserver (Router) Build Server Deploy Code active = B
RDBMS Read Slave Webserver FURY Frontend Server A K/V Storage
Search FURY Backend Webserver (Router) Build Server Deploy Code Collect & Export active = B
RDBMS Read Slave Webserver FURY Frontend Server A K/V Storage
Search FURY Backend Webserver (Router) Build Server Deploy Code Collect & Export Smoke Tests active = B
RDBMS Read Slave Webserver FURY Frontend Server A K/V Storage
Search FURY Backend Webserver (Router) Build Server Deploy Code Collect & Export Smoke Tests Switch to A active = A
RDBMS Read Slave Webserver FURY Frontend Server A K/V Storage
Search FURY Backend active = B Webserver (Router) Build Server Deploy Code Collect & Export
We are very close to launch!
What next? • party hard! • identify the next pain
points we want to work on • replace the next parts of the legacy system with new, self-contained components / services
https://www.instagram.com/kartenmacherei/ Q&A https://www.facebook.com/kartenmacherei/ +49 40 468996861
[email protected]
http://www.kartenmacherei.de/recruiting