SlideShare a Scribd company logo
1 of 32
Download to read offline
A competitive food retail architecture with microservices
A three four year journey towards microservices / Meetup 21.03.2018
Sebastian Gauder / @rattakresch
Our history
3
Details REWE GROUP
Turnover
>54 bn
History
90 years
Employees
>330.000
Inudstries
Food Retail,
Tourism,
DIY
Shops
>15.000
Our history (Spoiler alert)
Our history
2014
40 15
100
28
200
51
2015 2016 2017
# Services
# Teams
1 2
Organization and Architecture
at Rewe Digital
Domain Subdomain Bounded Context
Tribe Squad Team
Platform Service
Is
modelled
as
Consists
of
Consists
of
1 N 1 N
1 N
Consists
of
1 N
Consists
of
1 N
1
1
1
1
N
1
Builds Builds
1
N
ImplementsFulfills requirements
of
1
1
Is responsible
for
How to scale monoliths?
Design Goals
Vertical Boundaries
Decentralization
“Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the
organization's communication structure.”
Melvin Conway (1967)
Conway’s law
How to organize teams to build a scalable system?
Functional and vertical teams
How to determine boundaries?
Customer journey defines subdomains
How to guide developers?
Design Goals
- Vertical boundaries
- Decentralization
Architectural principles
- Collection of 9 basic ‘laws’
- Autonomy, Automation and Communication
Guides
- Practical manual for common tasks (RFC 2119)
- e.g. Eventing, REST, Authentication
Guarding rails for developers
MUST
SHOULD
COULD
autonomy
Autonomy principles
Deploy independently
Ensure that the services can and are deployed by the teams themselves.
Isolate failure
Make the services as resilient as possible.
Hide implementation Details
Different verticals must not share state. Verticals hide their implementation details.
Encapsulate Data Storage
For any data resource exactly one service is responsible. If possible, the data supply should proceed
asynchronously in the background
Autonomous Teams
- challenge for product owners as they have to rethink their features
- they might have to reduce the scope
- split the original feature into smaller ones for each team / bounded context
Data-integration pattern
- Change your service behavior depending on the data you have to display
- Enable others to deliver functionality later
Evolving Implementations
- Start with a fitting but simple solution and get better by every team implementing it
Challenges
Autonomy opens your tech stacks
automation
Automation principles
Be Scalable
Services are scaled horizontally
Embrace a Culture of Automation
Test, deployment and operations are completely automated
Be Highly Observable
Use of semantic monitoring to see if the whole platform works correctly.
communication
Communication principles
Follow REST Principles
The API of a service follows the RESTful paradigm (REST maturity level 2)
Standardize Service communication
Inter-service communication is standardized and if possible asynchronous
Problems in HTTP/REST-only architectures
Gateway
µService 1
µService 2
µService 5µService 4
Things that help:
● Timeouts
● Fallbacks
● Circuit Breakers
● EventingµService 3
Asynchronous > Synchronous
- Have as much needed data locally as possible ->
resilience at request time
- Duplication of data is accepted and wanted
- Problem of eventual consistency
- Only use synchronous communication if the process
is vulnerable to race conditions
Communication in microservice worlds
Having data is better than fetching data
Eventing with Apache Kafka
● Eventing != Messaging
○ Publish events that already happened
○ One owning service per queue/topic
○ Autonomy at request time
● Complete entities - not deltas
○ Transactional completeness
○ Allows log compaction
● Re-writing and Re-reading
○ needed in case of additional data
○ useful in case of data loss
Eventing is an API as well
- Events have to behave like APIs and avoid breaking changes.
Writing APIs is hard
- Teams tend to write APIs for special clients (e.g. mobile apps)
- New clients often don’t match and require API changes
Breaking changes require a strict procedure
- Could be solved by new endpoints, new topics
Lessons learned with microservice APIs
How to access?
Usage of API gateways as entry points
How to access Microservices?
Dynamic frontend composition
How UIs in microservice architectures should be composed
Dynamic UI composition with DUC
Where does my UI come from?
Thank you
Questions ?
A competitive food retail architecture with microservices
A three four year journey towards microservices / Meetup 21.03.
Sebastian Gauder / @rattakresch

More Related Content

Similar to A competitive food retail architecture with microservices

The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesRonald Ashri
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
MuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationMuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationPace Integration
 
Practical soa for business and researchers
Practical soa for business and researchersPractical soa for business and researchers
Practical soa for business and researchersMustafa Gamal
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...HostedbyConfluent
 
Building microservices on azure
Building microservices on azureBuilding microservices on azure
Building microservices on azureVaibhav Gujral
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitectureABDEL RAHMAN KARIM
 
Kochi mulesoft meetup 02
Kochi mulesoft meetup 02Kochi mulesoft meetup 02
Kochi mulesoft meetup 02sumitahuja94
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design ArchitectureHarish Kumar
 
Five Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data ApplicationsFive Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data ApplicationsLightbend
 
Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)Alexander SAMARIN
 
Manage the Digital Transformation with Machine Learning in a Reactive Microse...
Manage the Digital Transformation with Machine Learning in a Reactive Microse...Manage the Digital Transformation with Machine Learning in a Reactive Microse...
Manage the Digital Transformation with Machine Learning in a Reactive Microse...DataWorks Summit
 
Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Pete Siddall
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservicesMithun Arunan
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureTapio Rautonen
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureKim Clark
 

Similar to A competitive food retail architecture with microservices (20)

The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservices
 
EAI (Integration) and Mulesoft
EAI (Integration) and MulesoftEAI (Integration) and Mulesoft
EAI (Integration) and Mulesoft
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
MuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP IntegrationMuleSoft London Community October 2017 - Hybrid and SAP Integration
MuleSoft London Community October 2017 - Hybrid and SAP Integration
 
Practical soa for business and researchers
Practical soa for business and researchersPractical soa for business and researchers
Practical soa for business and researchers
 
Microservices why?
Microservices   why?Microservices   why?
Microservices why?
 
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
From Monoliths to Microservices - A Journey With Confluent With Gayathri Veal...
 
Building microservices on azure
Building microservices on azureBuilding microservices on azure
Building microservices on azure
 
Over view of software artitecture
Over view of software artitectureOver view of software artitecture
Over view of software artitecture
 
Kochi mulesoft meetup 02
Kochi mulesoft meetup 02Kochi mulesoft meetup 02
Kochi mulesoft meetup 02
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design Architecture
 
Five Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data ApplicationsFive Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data Applications
 
Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)Better application architecture with #microservices and #BPM (as APaaS)
Better application architecture with #microservices and #BPM (as APaaS)
 
Manage the Digital Transformation with Machine Learning in a Reactive Microse...
Manage the Digital Transformation with Machine Learning in a Reactive Microse...Manage the Digital Transformation with Machine Learning in a Reactive Microse...
Manage the Digital Transformation with Machine Learning in a Reactive Microse...
 
Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...Hhm 3474 mq messaging technologies and support for high availability and acti...
Hhm 3474 mq messaging technologies and support for high availability and acti...
 
Move fast and make things with microservices
Move fast and make things with microservicesMove fast and make things with microservices
Move fast and make things with microservices
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
MuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration ArchitectureMuCon 2015 - Microservices in Integration Architecture
MuCon 2015 - Microservices in Integration Architecture
 
Adopting the Cloud
Adopting the CloudAdopting the Cloud
Adopting the Cloud
 

Recently uploaded

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Recently uploaded (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

A competitive food retail architecture with microservices

  • 1. A competitive food retail architecture with microservices A three four year journey towards microservices / Meetup 21.03.2018 Sebastian Gauder / @rattakresch
  • 3. 3 Details REWE GROUP Turnover >54 bn History 90 years Employees >330.000 Inudstries Food Retail, Tourism, DIY Shops >15.000
  • 5. Our history 2014 40 15 100 28 200 51 2015 2016 2017 # Services # Teams 1 2
  • 6. Organization and Architecture at Rewe Digital Domain Subdomain Bounded Context Tribe Squad Team Platform Service Is modelled as Consists of Consists of 1 N 1 N 1 N Consists of 1 N Consists of 1 N 1 1 1 1 N 1 Builds Builds 1 N ImplementsFulfills requirements of 1 1 Is responsible for
  • 7. How to scale monoliths?
  • 9. “Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.” Melvin Conway (1967) Conway’s law
  • 10. How to organize teams to build a scalable system? Functional and vertical teams
  • 11. How to determine boundaries?
  • 13. How to guide developers?
  • 14. Design Goals - Vertical boundaries - Decentralization Architectural principles - Collection of 9 basic ‘laws’ - Autonomy, Automation and Communication Guides - Practical manual for common tasks (RFC 2119) - e.g. Eventing, REST, Authentication Guarding rails for developers MUST SHOULD COULD
  • 16. Autonomy principles Deploy independently Ensure that the services can and are deployed by the teams themselves. Isolate failure Make the services as resilient as possible. Hide implementation Details Different verticals must not share state. Verticals hide their implementation details. Encapsulate Data Storage For any data resource exactly one service is responsible. If possible, the data supply should proceed asynchronously in the background
  • 17. Autonomous Teams - challenge for product owners as they have to rethink their features - they might have to reduce the scope - split the original feature into smaller ones for each team / bounded context Data-integration pattern - Change your service behavior depending on the data you have to display - Enable others to deliver functionality later Evolving Implementations - Start with a fitting but simple solution and get better by every team implementing it Challenges
  • 18. Autonomy opens your tech stacks
  • 20. Automation principles Be Scalable Services are scaled horizontally Embrace a Culture of Automation Test, deployment and operations are completely automated Be Highly Observable Use of semantic monitoring to see if the whole platform works correctly.
  • 22. Communication principles Follow REST Principles The API of a service follows the RESTful paradigm (REST maturity level 2) Standardize Service communication Inter-service communication is standardized and if possible asynchronous
  • 23. Problems in HTTP/REST-only architectures Gateway µService 1 µService 2 µService 5µService 4 Things that help: ● Timeouts ● Fallbacks ● Circuit Breakers ● EventingµService 3
  • 24. Asynchronous > Synchronous - Have as much needed data locally as possible -> resilience at request time - Duplication of data is accepted and wanted - Problem of eventual consistency - Only use synchronous communication if the process is vulnerable to race conditions Communication in microservice worlds Having data is better than fetching data
  • 25. Eventing with Apache Kafka ● Eventing != Messaging ○ Publish events that already happened ○ One owning service per queue/topic ○ Autonomy at request time ● Complete entities - not deltas ○ Transactional completeness ○ Allows log compaction ● Re-writing and Re-reading ○ needed in case of additional data ○ useful in case of data loss
  • 26. Eventing is an API as well - Events have to behave like APIs and avoid breaking changes. Writing APIs is hard - Teams tend to write APIs for special clients (e.g. mobile apps) - New clients often don’t match and require API changes Breaking changes require a strict procedure - Could be solved by new endpoints, new topics Lessons learned with microservice APIs
  • 28. Usage of API gateways as entry points How to access Microservices?
  • 29. Dynamic frontend composition How UIs in microservice architectures should be composed
  • 30. Dynamic UI composition with DUC Where does my UI come from?
  • 32. A competitive food retail architecture with microservices A three four year journey towards microservices / Meetup 21.03. Sebastian Gauder / @rattakresch