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
Reading Rails 1.0 Source Code
okuramasafumi
0
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
410
楽して成果を出すためのセルフリソース管理
clipnote
0
180
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
RDoc meets YARD
okuramasafumi
4
170
ProxyによるWindow間RPC機構の構築
syumai
3
1.2k
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
3.3k
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
610
より安全で効率的な Go コードへ: Protocol Buffers Opaque API の導入
shwatanap
2
690
概念モデル→論理モデルで気をつけていること
sunnyone
3
290
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
120
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
500
Featured
See All Featured
Bash Introduction
62gerente
615
210k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Designing for Performance
lara
610
69k
Gamification - CAS2011
davidbonilla
81
5.4k
Building an army of robots
kneath
306
46k
Agile that works and the tools we love
rasmusluckow
330
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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