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
43
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
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
490
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
AI Agent 時代的開發者生存指南
eddie
4
2.1k
NIKKEI Tech Talk#38
cipepser
0
250
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
340
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
240
Software Architecture
hschwentner
6
2.3k
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
110
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
Claude Agent SDK を使ってみよう
hyshu
0
1.4k
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
3
6.9k
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
1.2k
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.3k
Docker and Python
trallard
46
3.6k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Agile that works and the tools we love
rasmusluckow
331
21k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Side Projects
sachag
455
43k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Facilitating Awesome Meetings
lara
57
6.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
130k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Into the Great Unknown - MozCon
thekraken
40
2.1k
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