monoliths, migrations, and microservices - lightbend...“tell us how you did things at google and...
TRANSCRIPT
![Page 1: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/1.jpg)
Monoliths, Migrations, and Microservices
Randy Shoup @randyshoup
linkedin.com/in/randyshoup
![Page 2: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/2.jpg)
Background• VP Engineering at WeWork
o Physical space as a service
• VP Engineering at Stitch Fix o Using technology and data science to revolutionize clothing retail
• Director of Engineering for Google App Engine o World’s largest Platform-as-a-Service
• Chief Engineer at eBay o Evolving multiple generations of eBay’s infrastructure
![Page 3: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/3.jpg)
“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”
![Page 4: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/4.jpg)
Architecture Evolution • eBay
• 5th generation today • Monolithic Perl à Monolithic C++ à Java à microservices
• Twitter • 3rd generation today • Monolithic Rails à JS / Rails / Scala à microservices
• Amazon • Nth generation today • Monolithic Perl / C++ à Java / Scala à microservices
![Page 5: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/5.jpg)
No one starts with microservices …
Past a certain scale, everyone ends up with microservices
![Page 6: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/6.jpg)
If you don’t end up regretting your early technology decisions, you probably over-engineered.
![Page 7: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/7.jpg)
STARTING SCALING OPTIMIZING
https://ittybiz.com/s-curve/
![Page 8: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/8.jpg)
STARTING SCALING OPTIMIZING
https://ittybiz.com/s-curve/
IDEA
![Page 9: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/9.jpg)
What problem are you trying to solve?
![Page 10: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/10.jpg)
Idea Phase: “Prototype” Architecture
• Goal: Explore the space as rapidly and cheaply as
possible • Find business model • Find product market fit • Acquire first customers
• è Rapid Iteration • *Everything* is a prototype • You *will* throw it all away
![Page 11: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/11.jpg)
Idea Phase: “Prototype” Architecture
• Ideally No Technology At All
• Paper prototypes • Google ads • Excel spreadsheet • Wordpress blog
• If you *really* need to build something … • Familiar technology • Cobble it together
![Page 12: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/12.jpg)
“Do things that don’t scale”-- Paul Graham
![Page 13: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/13.jpg)
STARTING SCALING OPTIMIZING
https://ittybiz.com/s-curve/
One Team
3-6 month horizon
![Page 14: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/14.jpg)
Two-Pizza Team
4-6 people
“A team should be no
larger than can be fed
by two large pizzas.”
-- Jeff Bezos, Amazon
![Page 15: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/15.jpg)
Starting Phase: “Just Enough” Architecture • Goal: Meet near-term, evolving customer needs as
cheaply as possible • Delight first customers • Acquire more
• Rapid learning and improvement
• Team productivity
• NOT about scaling
![Page 16: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/16.jpg)
“The best code you can write now is code you’ll discard in a couple of years time”
-- Martin Fowler
http://martinfowler.com/bliki/SacrificialArchitecture.html
![Page 17: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/17.jpg)
Starting Phase: “Just Enough” Architecture • Simple, Familiar Technology
• Ease of Use • Expressive Power • Rapid prototyping frameworks (Ruby / Rails, PHP, etc.)
• Monolithic Architecture • Single application • Single database
• Minimal Infrastructure • Ideally serverless • PaaS or Lambda instead of IaaS
![Page 18: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/18.jpg)
The Monolithic Architecture
2-3 monolithic tiers
Presentation
Application
Database
![Page 19: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/19.jpg)
Monolithic Architecture
• Simple at first
• In-process latencies
• Single build and deployment unit
• Resource-efficient at small scale
• Coordination overhead as team grows
• Poor enforcement of modularity
• No horizontal scaling
• Single point of failure, single performance bottleneck
Pros Cons
![Page 20: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/20.jpg)
Starting Phase: Preparing to Scale
• Modularity Discipline
• Use “shared libraries” within the monolith • Easy to modify or replace
• Detailed Logging • Understanding user behavior • Instrumenting for diagnosis and recovery
• Continuous Delivery • Deploy many times per day
![Page 21: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/21.jpg)
When to Rearchitect?
• Velocity o Time to market is constrained by coupling and lack of isolation in the
monolith o Teams step on each others’ toes, and can no longer develop
independently o Difficult for new engineers to be productive
• Scaling o Vertical scaling of the monolith no longer works
o Parts of the system need to scale independently of others
![Page 22: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/22.jpg)
When to Rearchitect?
• Deployment o Parts of the system need to deploy independently of others o Monolithic release is too slow, too complicated, too risky
![Page 23: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/23.jpg)
STARTING SCALING OPTIMIZING
https://ittybiz.com/s-curve/
More and More Teams
6-24 month horizon
![Page 24: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/24.jpg)
Scaling Phase: Scalable Architecture
• Goal: Stay ahead of rapidly growing business. Keep the site up (!)
• Scaling the Teams
• Scaling the Technology
• Repeatable Processes
![Page 25: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/25.jpg)
Many Two-Pizza Teams
Idea Development
Quality Operations
Idea Development
Quality Operations
Idea Development
Quality Operations
![Page 26: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/26.jpg)
Scaling Phase: Scalable Architecture
• Technology that Scales
• Common migrations to {Python, Go, JVM languages} • Concurrency • Asynchrony
• Independent systems • Fit-for-purpose systems: analytics, search • Separated services: payments, etc. • Layered services: caching, etc.
• Event queue • Use events to communicate between applications and services
![Page 27: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/27.jpg)
Scaling Phase: Scalable Architecture
• Scalable persistence
• Break up the monolithic database • Functional partitioning • Sharding
![Page 28: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/28.jpg)
Microservices
• Single-purpose • Simple, well-defined interface • Modular and independent
A
C D E
B
![Page 29: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/29.jpg)
Microservices
• Single-purpose • Simple, well-defined interface • Modular and independent • Isolated persistence (!)
A
C D E
B
![Page 30: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/30.jpg)
Microservice Architecture
• Each unit is simple
• Independent scaling and performance
• Independent testing and deployment
• “Optimal” technology stack
• Security boundary
• Multiple cooperating units
• Exchange in-process for network latencies
• More sophisticated deployment and monitoring tools
• Overall system complexity
Pros Cons
![Page 31: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/31.jpg)
Migrating to Services
• Incremental Migration
• Migrating a Monolithic Application
• Migrating a Monolithic Database
![Page 32: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/32.jpg)
Migrating to Services
• Incremental Migration
• Migrating a Monolithic Application
• Migrating a Monolithic Database
![Page 33: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/33.jpg)
“The only thing a Big Bang migration guarantees is a big *Bang*.”
-- Martin Fowler
![Page 34: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/34.jpg)
Incremental Migration
• Step 0: Pilot Implementation o Choose initial end-to-end vertical experience to migrate / create o (+) Opportunity to learn and adjust o (+) Demonstrate feasibility and gain confidence o (+) Bound investment and risk o (+) Provide real customer value
• Initial step is the hardest o Learning how to do things in the new way o Building out basic supporting capabilities
![Page 35: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/35.jpg)
Incremental Migration
• Steps 1-N: Incremental Migration
o Prioritize business value -- highest ROI areas first o Focus on areas with greatest rate of change o (+) Maximize near-term payoff from investment o (+) Confront and solve hard problems sooner rather than later
• New feature development in parallel o Typically cannot pause all feature work in all areas to migrate J o Within a particular area, try to separate feature work from migration work
in distinct steps
![Page 36: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/36.jpg)
Incremental Migration
• Residual monolith may remain indefinitely
o Lowest business value o Most stable and least changing o Can migrate – or not – opportunistically
![Page 37: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/37.jpg)
Migrating to Services
• Incremental Migration
• Migrating a Monolithic Application
• Migrating a Monolithic Database
![Page 38: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/38.jpg)
Carving up the
Monolith• Look for (or create) a “seam” in the
monolith o This is often the hardest part (!)
• Wall it off behind an interface
• Write automated tests around the interface
• Replace implementation with an independent component
• è Rinse and Repeat
![Page 39: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/39.jpg)
Migrating to Services
• Incremental Migration
• Migrating a Monolithic Application
• Migrating a Monolithic Database
![Page 40: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/40.jpg)
Extracting Microservices
• Problem: Monolithic shared DB
• Clients • Shipments • Items • Styles, SKUs • Warehouses • etc.
stitchfix.com Styling app Warehouse app Merch app
CS app Logistics app Payments service Profile service
![Page 41: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/41.jpg)
Extracting Microservices
• Decouple applications / services from shared DB
• Clients • Shipments • Items • Styles, SKUs • Warehouses • etc.
stitchfix.com Styling app Warehouse app Merch app
CS app Logistics app Payments service Profile service
![Page 42: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/42.jpg)
Extracting Microservices
• Decouple applications / services from shared DB
Styling app Warehouse app
core_item
core_sku
core_client
![Page 43: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/43.jpg)
Extracting Microservices
• Step 1: Create a service
Styling app Warehouse app
core_item
core_sku
core_client
client-service
![Page 44: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/44.jpg)
Extracting Microservices
• Step 2: Applications use the service
Styling app Warehouse app
core_item
core_sku
core_client
client-service
![Page 45: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/45.jpg)
Extracting Microservices
• Step 3: Move data to private database
Styling app Warehouse app
core_item
core_sku
client-service
core_client
![Page 46: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/46.jpg)
Extracting Microservices
• Step 4: Rinse and Repeat
Styling app Warehouse app
core_sku
client-service
core_client
item-service
core_item
![Page 47: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/47.jpg)
Extracting Microservices
• Step 4: Rinse and Repeat
Styling app Warehouse app
client-service
core_client
item-service
core_item
style-service
core_sku
![Page 48: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/48.jpg)
Extracting Microservices
• Step 4: Rinse and Repeat
Styling app Warehouse app
client-service
core_client
item-service
core_item
style-service
core_sku
![Page 49: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/49.jpg)
Getting to rearchitect a system is a sign of success, not failure.
![Page 50: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/50.jpg)
Service as System of Record
• Single System of Record o Every piece of data is owned by a single service o That service is the canonical system of record for that data
• Every other copy is a read-only, non-authoritative cache
@randyshoup linkedin.com/in/randyshoup
customer-service styling-service
customer-search
billing-service
![Page 51: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/51.jpg)
Microservices and Events
• Events are a first-class part of a service interface
• A service interface includes o Synchronous request-response (REST, gRPC, etc) o Events the service produces o Events the service consumes o Bulk reads and writes (ETL)
• The interface includes any mechanism for getting data in or out of the service (!)
@randyshoup linkedin.com/in/randyshoup
![Page 52: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/52.jpg)
STARTING SCALING OPTIMIZING
https://ittybiz.com/s-curve/
Fewer Teams
2-5 year horizon
![Page 53: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/53.jpg)
STARTING SCALING OPTIMIZING
https://ittybiz.com/s-curve/
![Page 54: Monoliths, Migrations, and Microservices - Lightbend...“Tell us how you did things at Google and eBay.” “Sure, I’ll tell you, but you have to promise not to do them! [… yet]”](https://reader036.vdocuments.us/reader036/viewer/2022062602/5ec5b6cab31df6345832cb14/html5/thumbnails/54.jpg)
Merci!@randyshoup linkedin.com/in/randyshoup medium.com/@randyshoup