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-impact refactors keeping the lights on
Search
Kartones
September 23, 2017
Programming
0
59
High-impact refactors keeping the lights on
Given at PyConES 2017, MadScalability & MindCamp 9.0
Kartones
September 23, 2017
Tweet
Share
More Decks by Kartones
See All by Kartones
Building Autonomous Agents with gym-retro
kartones
0
40
Python static typing with MyPy
kartones
0
61
Remote Work
kartones
0
79
Geospatial CSV Imports Hidden Complexity
kartones
0
43
Intro to GameBoy Development
kartones
0
89
Myths & The Real World of OpenSource Development
kartones
0
43
CartoDB Tech Intro
kartones
0
42
Copy Protection & Cracking History
kartones
0
110
Cómo ganar dinero con tus juegos online
kartones
1
110
Other Decks in Programming
See All in Programming
エラーレスポンス設計から考える、0→1開発におけるGraphQLへの向き合い方
bicstone
5
1.5k
オートマトン学習しろ / Do automata learning
makenowjust
3
130
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
230
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
660
はじめてみよう量子プログラミング
itokoichi01
0
220
Hono・Prisma・AWSでGeoなAPI開発
nokonoko1203
5
680
長期運用プロダクトの開発速度を維持し続けるためのリファクタリング実践例
wataruss
8
2.7k
Regular Expressions, REXML, Automata Learning
makenowjust
0
220
意外とフォントが大事だった話 / Font Issues on Internationalization
fumi23
0
110
Composing an API the *right* way (Droidcon New York 2024)
zsmb
2
130
今インフラ技術をイチから学び直すなら
yuhta28
1
140
Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
satoshi256kbyte
2
260
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
36
7k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Why Our Code Smells
bkeepers
PRO
334
56k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
190
16k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
A better future with KSS
kneath
235
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
Facilitating Awesome Meetings
lara
49
6k
Web Components: a chance to create the future
zenorocha
309
42k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
Transcript
High-impact refactors keeping the lights on @Kartones Diego Muñoz
01. What 02. Why 03. How 04. When Agenda
What
What
What
Why
Why
Why
How
Mega structures How
Mega structures How
DB High-frequency selling How CMS API CRUD Current (simplified) flow
How Extend, not modify* API DB High-frequency selling CRUD CMS
REDIS EVENT BUS EVENT BUS APU *do modify if needed to allow extension
Patterns & Practices - Parallel change - Strangler How API
DB High-frequency selling CRUD CMS REDIS EVENT BUS EVENT BUS APU
How API DB High-frequency selling CRUD CMS REDIS EVENT BUS
EVENT BUS APU Patterns & Practices - Event Bus - Cursor-based - N writers/readers
How API DB High-frequency selling CRUD CMS REDIS EVENT BUS
EVENT BUS APU Patterns & Practices - Event Sourcing
How API DB High-frequency selling CRUD CMS REDIS EVENT BUS
EVENT BUS APU “Build exciting things with boring nice technologies” - Python 3.6 · Strongly typed (Mypy) · Dockerized - Redis with LUA - AWS Kinesis github.com/ticketea/pynesis
When
When Continous Iteration - No hard deadline - Desired: soon
:-)
Latest benchmark: ~4100 ops/sec - Single CPU core, 20k tickets,
50k concurrent users - Attacking internal API - Room for optimization When
Current status: - Free events - Paid events on their
way · Play safe (money involved!) · Lots of payment methods When
Release plan: - Now: Hack (Special payment method) - 1.0:
Feature Toggling When
Rollout plan 01. Canary: big free event 02. Dark launch:
on paid events 03. B/G: Gradual switch When
THE END Thanks! @Kartones