First presented at PyConES 2017
High-impactrefactorskeeping thelights on@KartonesDiego Muñoz
View Slide
01.What02.Why03.How04.WhenAgenda
What
Why
How
MegastructuresHow
DBHigh-frequencysellingHowCMSAPICRUDCurrent (simplified)flow
HowExtend,not modify*APIDBHigh-frequencysellingCRUDCMSREDISEVENTBUSEVENTBUSAPU*do modify if needed to allowextension
Patterns &Practices- Parallel change- StranglerHowAPIDBHigh-frequencysellingCRUDCMSREDISEVENTBUSEVENTBUSAPU
HowAPIDBHigh-frequencysellingCRUDCMSREDISEVENTBUSEVENTBUSAPUPatterns &Practices- Event Bus- Cursor-based- N writers/readers
HowAPIDBHigh-frequencysellingCRUDCMSREDISEVENTBUSEVENTBUSAPUPatterns &Practices- Event Sourcing
HowAPIDBHigh-frequencysellingCRUDCMSREDISEVENTBUSEVENTBUSAPU“Build excitingthings with boringnice technologies”- Python 3.6· Strongly typed (Mypy)· Dockerized- Redis with LUA- AWS Kinesisgithub.com/ticketea/pynesis
When
WhenContinous Iteration- No hard deadline- Desired: soon :-)
Latest benchmark:~4100 ops/sec- Single CPU core, 20ktickets, 50k concurrentusers- Attacking internal API- Room for optimizationWhen
Current status:- Free events- Paid events on their way· Play safe(money involved!)· Lots of payment methodsWhen
Release plan:- Now: Hack(Special payment method)- 1.0: Feature TogglingWhen
Rollout plan01. Canary: big free event02. Dark launch: on paid events03. B/G: Gradual switchWhen
THE ENDThanks!@Kartones