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
690
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
330
Ticketea, scaling a highly transactional business
ticketeaeng
0
240
Introducción a React Native
ticketeaeng
0
210
Virtual Lines with Asyncio
ticketeaeng
0
130
Cloud and Devops at ticketea
ticketeaeng
0
190
Developing our Box Office app
ticketeaeng
0
95
Architecture and Devops 2015
ticketeaeng
1
430
ticketea internals
ticketeaeng
2
550
Other Decks in Programming
See All in Programming
兎に角、コードレビュー
mitohato14
0
160
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
210
The state patternの実践 個人開発で培ったpractice集
miyanokomiya
0
160
RDoc meets YARD
okuramasafumi
4
160
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
360
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
190
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
1k
フロントエンドのmonorepo化と責務分離のリアーキテクト
kajitack
2
150
CSC305 Summer Lecture 12
javiergs
PRO
0
130
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
2
800
ECS初心者の仲間 – TUIツール「e1s」の紹介
keidarcy
0
150
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
290
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
A Tale of Four Properties
chriscoyier
160
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Building Applications with DynamoDB
mza
96
6.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
What's in a price? How to price your products and services
michaelherold
246
12k
Fireside Chat
paigeccino
39
3.6k
Why Our Code Smells
bkeepers
PRO
339
57k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
790
Raft: Consensus for Rubyists
vanstee
140
7.1k
Documentation Writing (for coders)
carmenintech
73
5k
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