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
Ticketea Engineering
September 23, 2017
Programming
1
460
High-Impact refactors keeping the lights on
First presented at PyConES 2017
Ticketea Engineering
September 23, 2017
Tweet
Share
More Decks by Ticketea Engineering
See All by Ticketea Engineering
Python Static Typing with MyPy
ticketeaeng
0
280
Ticketea, scaling a highly transactional business
ticketeaeng
0
210
Introducción a React Native
ticketeaeng
0
180
Virtual Lines with Asyncio
ticketeaeng
0
110
Cloud and Devops at ticketea
ticketeaeng
0
170
Developing our Box Office app
ticketeaeng
0
72
Architecture and Devops 2015
ticketeaeng
1
310
ticketea internals
ticketeaeng
2
420
Other Decks in Programming
See All in Programming
Enhancing Applications with Accessibility API
kishikawakatsumi
3
890
チームでモデリングを育てるうえで 考えたこと・気づいたこと / Cultivating Modeling in Teams: Thoughts and Insights
mackey0225
5
2.2k
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
1
260
プロンプトエンジニアリング入門
tomokusaba
2
970
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
4
2.8k
実践!RDRAを活用した既存システムの仕様変更 / Specification Changes in Existing Systems Utilizing RDRA
imamotohikaru
0
2.5k
ISUCONってなんだか難しそう……!!でも、初めてのISUCONにPHPで挑戦してきました!
kotomin_m
1
300
生成 AI の中身を覗いてみよう〜基礎から医療現場での応用まで〜
soh9834
2
760
せっかくモデル図描くのなら、嬉しいことが多い方がいいよね!
kuboaki
1
1.7k
BuefyのMaintainerを引き継いだ件
kikuomax
0
520
IntelliJ IDEA を知らなかった 自分に教えたい小ネタ集 / IntelliJ IDEA Hints for My Past Self
mackey0225
3
170
MySQL のインデックスの種類をおさらいしよう! / overviewing indexes in MySQL
okashoi
0
170
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
12
1.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
How to train your dragon (web standard)
notwaldorf
71
5.1k
How STYLIGHT went responsive
nonsquared
92
4.7k
Docker and Python
trallard
33
2.6k
The Invisible Side of Design
smashingmag
293
49k
A designer walks into a library…
pauljervisheath
199
23k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
The World Runs on Bad Software
bkeepers
PRO
60
6.6k
How GitHub Uses GitHub to Build GitHub
holman
467
290k
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