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
Mastering migrations
Search
Andriy
January 21, 2023
Programming
0
65
Mastering migrations
Andriy
January 21, 2023
Tweet
Share
More Decks by Andriy
See All by Andriy
PWWA: Progressive WordPress Web App
alsoknownasdrew
0
300
WordPress Development: Fantastic tools and where to find them
alsoknownasdrew
0
260
Other Decks in Programming
See All in Programming
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
290
WebViewの現在地 - SwiftUI時代のWebKit - / The Current State Of WebView
marcy731
0
120
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
390
AIともっと楽するE2Eテスト
myohei
6
2.6k
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
5.6k
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
120
Hack Claude Code with Claude Code
choplin
4
2k
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
150
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
1
18k
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
160
Deep Dive into ~/.claude/projects
hiragram
14
2.5k
生成AI時代のコンポーネントライブラリの作り方
touyou
1
210
Featured
See All Featured
Site-Speed That Sticks
csswizardry
10
690
Designing for Performance
lara
610
69k
Designing for humans not robots
tammielis
253
25k
Faster Mobile Websites
deanohume
307
31k
Optimizing for Happiness
mojombo
379
70k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
For a Future-Friendly Web
brad_frost
179
9.8k
Balancing Empowerment & Direction
lara
1
430
GraphQLとの向き合い方2022年版
quramy
49
14k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Transcript
Mastering Migrations From Monolith to Microservices with Golden Master Testing
Mastering Migrations From Monolith to Microservices with Golden Master Testing
Microservices
Andriy Frankevych Software Engineer @ Docebo Looking for a better
profile picture @alsoknownasdrew on the interwebs
Part 1: Why Are We Doing This? - 1 product
- 1 dev team - 1 system
Part 1: Why Are We Doing This? - 2 products
- 1 dev team - 1 system
Part 1: Why Are We Doing This? - 3 products
- 1 dev team - 1 system
Part 1: Why Are We Doing This? - 3 products
- 1 dev team - 1 system - 1 bottleneck
Part 1: Why Are We Doing This? - 3 products
- 3 dev teams - 1 system
Part 1: Why Are We Doing This? - 3 products
- 3 dev teams - 1 system
Part 1: Why Are We Doing This? - 3 products
- 3 dev teams - 1 system - 1 bottleneck
Part 1: Why Are We Doing This? - 3 products
- 3 dev teams - 3 systems
Microservices: organizational solution
Part 2: What Are We Doing? - Giant spaghetti script
- No tests - No one knows how it works
Part 2: What Are We Doing? Identify responsibilities
Part 3: How Are We Doing This? Record Golden Master
Part 3: How Are We Doing This? - Run the
tests - Refactor - Run the tests
Part 3: How Are We Doing This? - Use Adapters
Abstract dependencies: you'll be glad you did
Part 3: How Are We Doing This? - Use Adapters
- Use Contract Testing
Part 3: How Are We Doing This? - Use Adapters
- Use Contract Testing - Throw away Golden master
Golden Master: refactoring solution
Part 4: What's next? - Use Contract Testing to migrate
frontend
Part 4: What's next? - Use Contract Testing to migrate
frontend - Repeat for other services
Thanks References: - Fred Brooks: The Mythical Man-Month - Eric
Evans: Domain Driven Design - Eberhard Wolff: Microservices - Michael Feathers: Working Effectively with Legacy Code - Contract testing: stoplight.io | pact.io - Slides: https://speakerdeck.com/alsoknownasdrew/mastering-migrations