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
58
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
35
Python static typing with MyPy
kartones
0
60
Remote Work
kartones
0
72
Geospatial CSV Imports Hidden Complexity
kartones
0
43
Intro to GameBoy Development
kartones
0
88
Myths & The Real World of OpenSource Development
kartones
0
37
CartoDB Tech Intro
kartones
0
42
Copy Protection & Cracking History
kartones
0
97
Cómo ganar dinero con tus juegos online
kartones
1
100
Other Decks in Programming
See All in Programming
What We Can Learn From OSS
inouehi
0
430
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
560
Micro Frontends for Java Microservices - Utah JUG 2024
mraible
PRO
1
100
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
4
330
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
240
使ってみよう Azure AI Document Intelligence
kosmosebi
2
360
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.4k
Ruby Pattern Matching
bkuhlmann
0
930
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
690
Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
utgwkk
6
1.7k
Node.js v22 で変わること
yosuke_furukawa
PRO
11
3.9k
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.3k
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Atom: Resistance is Futile
akmur
260
25k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
46k
Code Review Best Practice
trishagee
56
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
11
1k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Debugging Ruby Performance
tmm1
70
11k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.2k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
Navigating Team Friction
lara
179
13k
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