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
65
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
44
Python static typing with MyPy
kartones
0
70
Remote Work
kartones
0
92
Geospatial CSV Imports Hidden Complexity
kartones
0
52
Intro to GameBoy Development
kartones
0
98
Myths & The Real World of OpenSource Development
kartones
0
47
CartoDB Tech Intro
kartones
0
48
Copy Protection & Cracking History
kartones
0
120
Cómo ganar dinero con tus juegos online
kartones
1
120
Other Decks in Programming
See All in Programming
CSC305 Lecture 13
javiergs
PRO
0
350
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
minodriven
4
710
モテるデスク環境
mozumasu
3
1.4k
Webサーバーサイド言語としてのRustについて
kouyuume
1
5.1k
iOSでSVG画像を扱う
kishikawakatsumi
0
180
ボトムアップの生成AI活用を推進する社内AIエージェント開発
aku11i
0
1.5k
マンガアプリViewerの大画面対応を考える
kk__777
0
450
Developer Joy - The New Paradigm
hollycummins
1
400
Node-REDのノードの開発・活用事例とコミュニティとの関わり(Node-RED Con Nagoya 2025)
404background
0
110
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
250
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
180
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
140
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
The Pragmatic Product Professional
lauravandoore
36
7k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
RailsConf 2023
tenderlove
30
1.3k
Faster Mobile Websites
deanohume
310
31k
Visualization
eitanlees
150
16k
Gamification - CAS2011
davidbonilla
81
5.5k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Raft: Consensus for Rubyists
vanstee
140
7.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