
“Dividing an Orange” Evolution
How the public-web architecture of a large fintech evolved from 2016 to 2019

How the public-web architecture of a large fintech evolved from 2016 to 2019
How the public-web architecture of a large fintech evolved from 2016 to 2019
Acquisition Department and the process
Frontend: monolith → micro-frontends
CMS: templates → block editor
Personalization: A/B → ML, and lessons
What's under the hood
Public web and surrounding systems · ~60 engineers
Unauthenticated flagship web
Release-less CMS for web and mobile
Personalization and A/B testing
Acquisition channel automation
What happens between the user request and the rendered page
User → LB → Frontend → CMS → Personalization → DataStore
That's where we'll focus
Story #1 — from monolith to micro-frontends
Starting point of the story
Before changing anything — understand
Meet the team
Dip into the dev process
Understand team and stakeholder pains
Form a tactical plan
From a monolith to a component model
Split responsibilities
Minimize coupling
An ownership area per team
Agree on contracts
So components can ship independently
With platform ready — grow teams
Our own framework — tramvai
Main components moved into it
First micro-frontend app in one team
Validated with an A/B test
Story #2 — from a monolith to microservices and cloud native
We stabilized the legacy system and formed an architecture team
Stabilize the legacy system
Arch team and a default stack
Dozens of services from product teams
Nowhere to deploy them
A platform instead of a central approval body
The arch team was disbanded
12-factor and k8s primitives
Frameworks for backend and frontend
Almost all prod on k8s
Story #3 — from A/B tests to ML predictors
The starting point of the third story
One main customer
A boxed product in production
A self-made C++ solution in alpha
One developer on the project
The team grew and the MVP shipped
Extended the team
Finished the MVP
Replaced the boxed product
Business is happy and wants more
What we learned about evolving architecture
Three systems, three paths
Small codebase or MVP — drop-in replacement
Medium codebase — parallel work and a painful swap
Large codebase and team — long evolution
evolution beats revolution — migrate in steps
Building Microservices — Sam Newman (2015)
Building Evolutionary Architectures — Ford, Parsons, Kua (2017)
The Twelve-Factor App — 12factor.net
Frontend Architecture for Design Systems — Micah Godbolt (2016)
polomodov.tech
All slides and links — in the Telegram channel
Alexander Polomodov, Engineering manager, Tinkoff.ru acquisition
@book_cube