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
74
0
Share
High-impact refactors keeping the lights on
Given at PyConES 2017, MadScalability & MindCamp 9.0
Kartones
September 23, 2017
More Decks by Kartones
See All by Kartones
Building Autonomous Agents with gym-retro
kartones
0
50
Python static typing with MyPy
kartones
0
80
Remote Work
kartones
0
100
Geospatial CSV Imports Hidden Complexity
kartones
0
57
Intro to GameBoy Development
kartones
0
110
Myths & The Real World of OpenSource Development
kartones
0
51
CartoDB Tech Intro
kartones
0
55
Copy Protection & Cracking History
kartones
0
140
Cómo ganar dinero con tus juegos online
kartones
1
120
Other Decks in Programming
See All in Programming
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
610
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
310
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.5k
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
Oxcを導入して開発体験が向上した話
yug1224
4
280
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
140
OSもどきOS
arkw
0
400
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
420
TSKaigi 2026 TypeScriptバックエンドのオブザーバビリティ戦略 — Datadog × NestJSの実践
taiseiyamamotoan
2
270
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
160
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.3k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
340
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
1
390
Typedesign – Prime Four
hannesfritz
42
3.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
200
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
Raft: Consensus for Rubyists
vanstee
141
7.5k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
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