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
68
Remote Work
kartones
0
88
Geospatial CSV Imports Hidden Complexity
kartones
0
52
Intro to GameBoy Development
kartones
0
97
Myths & The Real World of OpenSource Development
kartones
0
45
CartoDB Tech Intro
kartones
0
47
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
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
19k
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
12k
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
270
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
950
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4k
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
560
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
540
Team operations that are not burdened by SRE
kazatohiei
1
320
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
170
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
20
8k
10 Costly Database Performance Mistakes (And How To Fix Them)
andyatkinson
0
430
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
What's in a price? How to price your products and services
michaelherold
246
12k
BBQ
matthewcrist
89
9.7k
Visualization
eitanlees
146
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
A Tale of Four Properties
chriscoyier
160
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
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