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
570
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
290
Ticketea, scaling a highly transactional business
ticketeaeng
0
220
Introducción a React Native
ticketeaeng
0
190
Virtual Lines with Asyncio
ticketeaeng
0
110
Cloud and Devops at ticketea
ticketeaeng
0
180
Developing our Box Office app
ticketeaeng
0
80
Architecture and Devops 2015
ticketeaeng
1
350
ticketea internals
ticketeaeng
2
470
Other Decks in Programming
See All in Programming
Rubyのobject_id
qnighy
6
1.3k
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
200
LangChainの現在とv0.3にむけて
os1ma
4
820
Ruby Parser progress report 2024
yui_knk
2
210
Rubyとクリエイティブコーディングの輪の広がり / The Growing Circle of Ruby and Creative Coding
chobishiba
1
250
How to Break into Reading Open Source
kaspth
0
140
エラーレスポンス設計から考える、0→1開発におけるGraphQLへの向き合い方
bicstone
5
1.5k
実践 Advanced CallKit 〜快適な通話の実現に向けて〜
mot_techtalk
3
120
Jakarta EE meets AI
ivargrimstad
1
270
KSPの導入・移行を前向きに検討しよう!
shxun6934
PRO
0
130
GraphQL あるいは React における自律的なデータ取得について
quramy
11
2.8k
全部見せます! クラシルリワードのSwiftTesting移行プロジェクト
uetyo
0
190
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
600
Designing for humans not robots
tammielis
248
25k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Side Projects
sachag
451
42k
How to Think Like a Performance Engineer
csswizardry
16
940
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
48
2.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Agile that works and the tools we love
rasmusluckow
327
20k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
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