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
58
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
35
Python static typing with MyPy
kartones
0
60
Remote Work
kartones
0
72
Geospatial CSV Imports Hidden Complexity
kartones
0
43
Intro to GameBoy Development
kartones
0
88
Myths & The Real World of OpenSource Development
kartones
0
37
CartoDB Tech Intro
kartones
0
42
Copy Protection & Cracking History
kartones
0
94
Cómo ganar dinero con tus juegos online
kartones
1
100
Other Decks in Programming
See All in Programming
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
22
15k
Site Reliability Engineering for GMO
pyama86
5
680
Designing for tomorrow's programming workflows
honnibal
PRO
2
110
OpenAPI を守るのは難しい
ohmori_yusuke
2
770
9年開発を牽引して見えてきた、共通化すべきものと個別でつくるもの ~プログラム言語~
shinout
1
640
元気予報
suu_mire0726
0
850
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
270
今、知っておきたい! 生成AIエージェントの世界
elith
3
330
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
230
puregoの活用例
aethiopicuschan
0
220
Featured
See All Featured
Code Review Best Practice
trishagee
54
15k
The Language of Interfaces
destraynor
151
23k
Large-scale JavaScript Application Architecture
addyosmani
502
110k
Into the Great Unknown - MozCon
thekraken
10
980
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
114
18k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
24
2.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
The Power of CSS Pseudo Elements
geoffreycrofte
58
5k
We Have a Design System, Now What?
morganepeng
42
6.7k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
16k
Rebuilding a faster, lazier Slack
samanthasiow
72
8.2k
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