SlideShare a Scribd company logo
Introduction to
Microservices
By Mahmoud Zidan
Software life cycle
2 16 May 2019
Gathering requirements.
The goal of analysis is to determine where the problem is, in an attempt to fix the system.
Plan sprint to meet requirements in given time. Operations are described in detail including
business rules, process diagrams, etc. The output of this stage will describe the new
system as a collection of modules or subsystems.
The real code is written here.
All the pieces are brought together into a special testing environment, then checked for
errors, bugs, and interoperability.
Putting a release into production
Doing health checks
Checking time for requests and responses …
Plan & design
Development
Testing
Analysis
Release
Monitor
What is a Microservice?
• “The microservice architectural style is an approach to develop single application as a suite of small services,
each running in its own process & communication with light weight mechanism.” . James Lewis & Martin
Fowler.
• “Microservices are SMALL & AUTONOMUS services that work together”. Book - Building Microservices, Sam
Neuman.
• There is no specific technology used to build MS.
• Some Principles and architectural patterns are used to build MS.
3 16 May 2019
Microservice overview
Micro
• Big/small, who decide ?
• Is it the number of lines in code ?
• Is it the number of developers in
team?
• There is no universal measure . One
microservice should do ONE THING
& do it well.
• It is micro because of the scope of
functionality not line of code.
• Subdomains should be identified to
know the scope of functionality.
• Bounded context
• Should be built around business
capability
Microservice overview
Service
• It is an independently deployed component for bounded context.
• Interoperability.
• Uses message based communication.
• Independent from technologies.
• Simply it is SOA
Monolithic application
Simply a monolithic application consists of
• Model
• Single database
• User interface
• APIs can be exposed for third parties
• You can have more than one instance running behind load balancer
Monolithic application
Front end
user
Address
Order
Invoice Product Category
Supplier
Monolithic application
Pros
• Simple to build
• Simple to test
• Simple to deploy
• Simple to scale
• Multiple instances
• Simple to develop
• Limited to one language.
Cons
• The bigger the app, the bigger the team.
• New team members productivity is low.
• Code harder to understand & modify.
• Not updated with new technologies.
• Startup of app will take long time.
• Scale for bad reasons
• Need more CPU for calculating invoices, you will
scale the whole app.
Monolithic application
• Taking monolithic app and dividing it to smaller services will lead to:
• Concentrating on something smaller
• Software life cycle is still the same, but moves faster.
• Smaller teams
• Small services will live side by side.
Moving to Microservice
• Microservice should be “Domain Driven Design”.
• Taking the monolith application and moving to domain driven design
• Domain:
• E-commerce
• Sub-domains:
• User: Auth, profile, address,…
• Order: invoices, discount,…
• Product: Prodcuts, suppliers,…
• Dependencies:
• Sub domians should be totally independent. If you find any dependencies duplicating entities is
required.
Moving to Microservice
Front end
user
Address
Order
Invoice
Product
Category
Supplier
user
Product
Moving to Microservice
• Organization
• Teams will be divided by subdomain not domain
• Right sized team for each subdomain
• Each team will be solely responsible for their final product
• Each team should be independent, but the communication between them should be
handled by management
• Each team should have their own repo.
Moving to Microservice
• Data store
• Each MS should have its own database
• Example:
• Product: relational database
• Order: NoSQL
• User: LDAP
• Problem ?!
• If user changes his address it should be replicated in the entity found in order sub-domain.
• In MS world there is no distributed transaction [ in same transaction you update more than 1 table in
different databases] due to performance issures
• Therefore, data is not immediately consistent.
Moving to Microservice
• Data store
• Solution for data sync is using change data capture or event sourcing pattern.
• Both are ways of modeling data, especially at scale, using a combination of a mutable database.
• Service publishes event when data changes and other services will consume the event and
update data.
• Kafka can be used for keeping data in sync
• UI
• Composition pattern can be used to be consistent
• Client side
• Server side
Moving to Microservice
• Services
• Communication
• Remote Procedure Invocation/call (RPC):
User Order Product
• Request / reply principle (purchase request product price)
• Can be sync/async
• REST or SOAP can be used
Moving to Microservice
• Services
• Communication
• Messaging:
• Message or events
• On broker or channel
• MS can publish an event & the MS who is in need can subscribe to broker & receive the message at a later
time
• Kafka can be used also.
User ProductOrder
Broker
Moving to Microservice
• Services
• Communication
• Using any of the two methods you need protocol format exchange
• Text (JSON, XML,…) readable and easy to implement
• Binary (gRPC) more compact
• MSs need contracts to know the APIs of other MSs.
• Example: WSDLs & Swagger files.
Moving to Microservice
• Distributed services
• MSs are deployed where there network locations are changed dynamically.
QUESTION?
How can MSs communicate with each other when there locations are changed
dynamically ?
ANSWER
Service registery
Moving to Microservice
• Distributed services
• Service registry
• It is a phonebook of services
• MSs should register them selves on startup and at shutdown
• You can lookup by their logical names
• Product: 127.0.0.1:8080
• Eureca can be used for this
Moving to Microservice
• Distributed services
• Best way for FE to call MS is putting an API gateway
Front end
user Order Product
API Gateway
Moving to Microservice
• Distributed services
• Best way for FE to call MS is putting an API gateway
• Unified interface
• Can control the cross cutting functionalities (Authentication, Authorization, register, …)
• API translation
Moving to Microservice
• Security
• Use identity and access mangement for authentication and authorization.
• Once signed in Access-token can be used to move from one MS to another
• Scalability
• You can scale one MS or more.
• Scaling can be:
• Vertical:
• adding more power to existing machine (more CPU/RAM …)
• Horizontal:
• replicate more machines. i.e. several instances
• Client load balancing will choose from registry. (using round robin for example)
Product1: x.y.z:80
Product2: a.b.c:81
Moving to Microservice
• Availability
• Minutes is up and operational
• We have in this architecture some single point of failures
• Broker
• API Gateway
• Registry
• ALL POF should be scaled horizontally (multiple instances) & clustered to be in sync
Moving to Microservice
• Monitoring
• Should be centralized
• Use log aggregation (Log stash can be used)
• Should be visual in dashboard (Splunk/ Kibana can be used)
• Health check
• Service running. Cant handle requests. Should show database status, available space,…
• Record exceptions in tracker system cyntralized
• Gather statistics (DropWizard can be used)
• Limit traffic to defend DOS attachks
• A coorelation id (transaction_id) for the journey of the request (dapper can be used)
Moving to Microservice
• Deployment
• Can be on physical or virtual servers (still physical but can control CPU/RAM)
• MS should be packaged with its dependencies in container image & deployed as a
container
• Images can be easily moved from one environment to another. ( Docker to be used)
• Kubernetes is used to orchestrate the contianers
• Jenkins is used for continuous delivery
• There should be an external configuration for diff environments
• Putting debug mode in dev environment only
• Activating new functionality through configuration
Challenges
• Business concerns
• Integration between teams is difficult
• Many trainings need to be done as different dev. Stacks
• There is no standard in MS.
• Solution will rely on some standards (HTTP,SQL,..) but not standard stack.
• There is no single framework, but there is an integration of different technologies
• No single support
• Cost
• Small team
• Cheap start, cheap deployments on cloud
• Time
• Faster to market.
Challenges
• Technical concerns
• Design
• How to partition the system to services (invoices could’ve been services)
• How small !?
• Technical diversity
• Choose programming language
• Right database
• Distribution
• Communication over network
• How to deal with network failures (circuit breaker)
• Data store
• Database per subdomain
• Keep data in sync
• Security
• Access token renewal
Challenges
• Technical concerns
• Testing
• Less code will be tested
• Test in isolation
• Integration testing is hard
• Maintenance
• Less code to maintain
• Less code to understand
• Extensibility
• New feature, new MS
When to use MS ?
Time to market Extensibility
Replicability Scalability
Thank You

More Related Content

PPTX
Introduction To Microservices
Lalit Kale
 
PPTX
Microservices Architecture
Joshua Costa
 
PDF
Why Microservice
Kelvin Yeung
 
PPTX
DevSecOps reference architectures 2018
Sonatype
 
PPTX
Headless Architecture
Amandeep Singh
 
PDF
Microservices architecture
Abdelghani Azri
 
PDF
OpenShift-Technical-Overview.pdf
JuanSalinas593459
 
PDF
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
Introduction To Microservices
Lalit Kale
 
Microservices Architecture
Joshua Costa
 
Why Microservice
Kelvin Yeung
 
DevSecOps reference architectures 2018
Sonatype
 
Headless Architecture
Amandeep Singh
 
Microservices architecture
Abdelghani Azri
 
OpenShift-Technical-Overview.pdf
JuanSalinas593459
 
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 

What's hot (20)

PPTX
Microservices
SmartBear
 
PPTX
Introduction to Microservices
Roger van de Kimmenade
 
PPTX
Introduction to microservices
Paulo Gandra de Sousa
 
PPTX
Microservice vs. Monolithic Architecture
Paul Mooney
 
PDF
Design patterns for microservice architecture
The Software House
 
PPTX
Monoliths and Microservices
Bozhidar Bozhanov
 
PPTX
Azure Cloud PPT
Aniket Kanitkar
 
PDF
Microservice Architecture
tyrantbrian
 
PPTX
Introduction to microservices
Anil Allewar
 
PDF
Microservice Architecture
Nguyen Tung
 
PDF
DevOps Powerpoint Presentation Slides
SlideTeam
 
PDF
Introduction to Azure
Robert Crane
 
PDF
Service discovery with Eureka and Spring Cloud
Marcelo Serpa
 
PDF
Testing Microservices
Nagarro
 
PPTX
Azure App Service
BizTalk360
 
PDF
Cloud Native Application
VMUG IT
 
PPTX
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
PPTX
Modern CI/CD Pipeline Using Azure DevOps
GlobalLogic Ukraine
 
PPTX
Microservice architecture design principles
Sanjoy Kumar Roy
 
PPTX
Introduction to Azure Functions
Callon Campbell
 
Microservices
SmartBear
 
Introduction to Microservices
Roger van de Kimmenade
 
Introduction to microservices
Paulo Gandra de Sousa
 
Microservice vs. Monolithic Architecture
Paul Mooney
 
Design patterns for microservice architecture
The Software House
 
Monoliths and Microservices
Bozhidar Bozhanov
 
Azure Cloud PPT
Aniket Kanitkar
 
Microservice Architecture
tyrantbrian
 
Introduction to microservices
Anil Allewar
 
Microservice Architecture
Nguyen Tung
 
DevOps Powerpoint Presentation Slides
SlideTeam
 
Introduction to Azure
Robert Crane
 
Service discovery with Eureka and Spring Cloud
Marcelo Serpa
 
Testing Microservices
Nagarro
 
Azure App Service
BizTalk360
 
Cloud Native Application
VMUG IT
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
Simplilearn
 
Modern CI/CD Pipeline Using Azure DevOps
GlobalLogic Ukraine
 
Microservice architecture design principles
Sanjoy Kumar Roy
 
Introduction to Azure Functions
Callon Campbell
 
Ad

Similar to Introduction to Microservices (20)

PDF
Understanding Microservices
M A Hossain Tonu
 
PPTX
The Overview of Microservices Architecture
Paria Heidari
 
PPTX
Microservice intro
ramesh_sharma
 
PPTX
Serverless microservices
Lalit Kale
 
PDF
QCon 2015 - Microservices Track Notes
Abdul Basit Munda
 
PDF
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
PPTX
Iot cloud service v2.0
Vinod Wilson
 
PDF
Microservices Architecture
Srinivasan Nanduri
 
PPTX
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup
 
PPTX
Do I Need A Service Mesh.pptx
PINGXIONG3
 
PPTX
Grokking microservices in 5 minutes
Andrew Siemer
 
PPTX
Microservices vs monolithics betabeers
Jesús Mª Villar Vazquez
 
PPTX
Micro service session 1
Amin Arab
 
PPTX
Designing Microservices
David Chou
 
PPTX
SOA vs Microservices vs SBA
Michael Sukachev
 
PPTX
Exploring microservices in a Microsoft landscape
Alex Thissen
 
PPTX
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
AFAS Software
 
PPTX
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
PDF
Microservice Architecture
Engin Yoeyen
 
PPTX
Micro services and Containers
Richard Harvey
 
Understanding Microservices
M A Hossain Tonu
 
The Overview of Microservices Architecture
Paria Heidari
 
Microservice intro
ramesh_sharma
 
Serverless microservices
Lalit Kale
 
QCon 2015 - Microservices Track Notes
Abdul Basit Munda
 
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
Iot cloud service v2.0
Vinod Wilson
 
Microservices Architecture
Srinivasan Nanduri
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup
 
Do I Need A Service Mesh.pptx
PINGXIONG3
 
Grokking microservices in 5 minutes
Andrew Siemer
 
Microservices vs monolithics betabeers
Jesús Mª Villar Vazquez
 
Micro service session 1
Amin Arab
 
Designing Microservices
David Chou
 
SOA vs Microservices vs SBA
Michael Sukachev
 
Exploring microservices in a Microsoft landscape
Alex Thissen
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
AFAS Software
 
MicroserviceArchitecture in detail over Monolith.
PLovababu
 
Microservice Architecture
Engin Yoeyen
 
Micro services and Containers
Richard Harvey
 
Ad

Recently uploaded (20)

PPTX
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
PDF
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PPTX
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
 
PDF
Immersive experiences: what Pharo users do!
ESUG
 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PDF
Exploring AI Agents in Process Industries
amoreira6
 
PDF
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PDF
Summary Of Odoo 18.1 to 18.4 : The Way For Odoo 19
CandidRoot Solutions Private Limited
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
TRAVEL APIs | WHITE LABEL TRAVEL API | TOP TRAVEL APIs
philipnathen82
 
Immersive experiences: what Pharo users do!
ESUG
 
Presentation about Database and Database Administrator
abhishekchauhan86963
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
Exploring AI Agents in Process Industries
amoreira6
 
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Summary Of Odoo 18.1 to 18.4 : The Way For Odoo 19
CandidRoot Solutions Private Limited
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 

Introduction to Microservices

  • 2. Software life cycle 2 16 May 2019 Gathering requirements. The goal of analysis is to determine where the problem is, in an attempt to fix the system. Plan sprint to meet requirements in given time. Operations are described in detail including business rules, process diagrams, etc. The output of this stage will describe the new system as a collection of modules or subsystems. The real code is written here. All the pieces are brought together into a special testing environment, then checked for errors, bugs, and interoperability. Putting a release into production Doing health checks Checking time for requests and responses … Plan & design Development Testing Analysis Release Monitor
  • 3. What is a Microservice? • “The microservice architectural style is an approach to develop single application as a suite of small services, each running in its own process & communication with light weight mechanism.” . James Lewis & Martin Fowler. • “Microservices are SMALL & AUTONOMUS services that work together”. Book - Building Microservices, Sam Neuman. • There is no specific technology used to build MS. • Some Principles and architectural patterns are used to build MS. 3 16 May 2019
  • 4. Microservice overview Micro • Big/small, who decide ? • Is it the number of lines in code ? • Is it the number of developers in team? • There is no universal measure . One microservice should do ONE THING & do it well. • It is micro because of the scope of functionality not line of code. • Subdomains should be identified to know the scope of functionality. • Bounded context • Should be built around business capability
  • 5. Microservice overview Service • It is an independently deployed component for bounded context. • Interoperability. • Uses message based communication. • Independent from technologies. • Simply it is SOA
  • 6. Monolithic application Simply a monolithic application consists of • Model • Single database • User interface • APIs can be exposed for third parties • You can have more than one instance running behind load balancer
  • 8. Monolithic application Pros • Simple to build • Simple to test • Simple to deploy • Simple to scale • Multiple instances • Simple to develop • Limited to one language. Cons • The bigger the app, the bigger the team. • New team members productivity is low. • Code harder to understand & modify. • Not updated with new technologies. • Startup of app will take long time. • Scale for bad reasons • Need more CPU for calculating invoices, you will scale the whole app.
  • 9. Monolithic application • Taking monolithic app and dividing it to smaller services will lead to: • Concentrating on something smaller • Software life cycle is still the same, but moves faster. • Smaller teams • Small services will live side by side.
  • 10. Moving to Microservice • Microservice should be “Domain Driven Design”. • Taking the monolith application and moving to domain driven design • Domain: • E-commerce • Sub-domains: • User: Auth, profile, address,… • Order: invoices, discount,… • Product: Prodcuts, suppliers,… • Dependencies: • Sub domians should be totally independent. If you find any dependencies duplicating entities is required.
  • 11. Moving to Microservice Front end user Address Order Invoice Product Category Supplier user Product
  • 12. Moving to Microservice • Organization • Teams will be divided by subdomain not domain • Right sized team for each subdomain • Each team will be solely responsible for their final product • Each team should be independent, but the communication between them should be handled by management • Each team should have their own repo.
  • 13. Moving to Microservice • Data store • Each MS should have its own database • Example: • Product: relational database • Order: NoSQL • User: LDAP • Problem ?! • If user changes his address it should be replicated in the entity found in order sub-domain. • In MS world there is no distributed transaction [ in same transaction you update more than 1 table in different databases] due to performance issures • Therefore, data is not immediately consistent.
  • 14. Moving to Microservice • Data store • Solution for data sync is using change data capture or event sourcing pattern. • Both are ways of modeling data, especially at scale, using a combination of a mutable database. • Service publishes event when data changes and other services will consume the event and update data. • Kafka can be used for keeping data in sync • UI • Composition pattern can be used to be consistent • Client side • Server side
  • 15. Moving to Microservice • Services • Communication • Remote Procedure Invocation/call (RPC): User Order Product • Request / reply principle (purchase request product price) • Can be sync/async • REST or SOAP can be used
  • 16. Moving to Microservice • Services • Communication • Messaging: • Message or events • On broker or channel • MS can publish an event & the MS who is in need can subscribe to broker & receive the message at a later time • Kafka can be used also. User ProductOrder Broker
  • 17. Moving to Microservice • Services • Communication • Using any of the two methods you need protocol format exchange • Text (JSON, XML,…) readable and easy to implement • Binary (gRPC) more compact • MSs need contracts to know the APIs of other MSs. • Example: WSDLs & Swagger files.
  • 18. Moving to Microservice • Distributed services • MSs are deployed where there network locations are changed dynamically. QUESTION? How can MSs communicate with each other when there locations are changed dynamically ? ANSWER Service registery
  • 19. Moving to Microservice • Distributed services • Service registry • It is a phonebook of services • MSs should register them selves on startup and at shutdown • You can lookup by their logical names • Product: 127.0.0.1:8080 • Eureca can be used for this
  • 20. Moving to Microservice • Distributed services • Best way for FE to call MS is putting an API gateway Front end user Order Product API Gateway
  • 21. Moving to Microservice • Distributed services • Best way for FE to call MS is putting an API gateway • Unified interface • Can control the cross cutting functionalities (Authentication, Authorization, register, …) • API translation
  • 22. Moving to Microservice • Security • Use identity and access mangement for authentication and authorization. • Once signed in Access-token can be used to move from one MS to another • Scalability • You can scale one MS or more. • Scaling can be: • Vertical: • adding more power to existing machine (more CPU/RAM …) • Horizontal: • replicate more machines. i.e. several instances • Client load balancing will choose from registry. (using round robin for example) Product1: x.y.z:80 Product2: a.b.c:81
  • 23. Moving to Microservice • Availability • Minutes is up and operational • We have in this architecture some single point of failures • Broker • API Gateway • Registry • ALL POF should be scaled horizontally (multiple instances) & clustered to be in sync
  • 24. Moving to Microservice • Monitoring • Should be centralized • Use log aggregation (Log stash can be used) • Should be visual in dashboard (Splunk/ Kibana can be used) • Health check • Service running. Cant handle requests. Should show database status, available space,… • Record exceptions in tracker system cyntralized • Gather statistics (DropWizard can be used) • Limit traffic to defend DOS attachks • A coorelation id (transaction_id) for the journey of the request (dapper can be used)
  • 25. Moving to Microservice • Deployment • Can be on physical or virtual servers (still physical but can control CPU/RAM) • MS should be packaged with its dependencies in container image & deployed as a container • Images can be easily moved from one environment to another. ( Docker to be used) • Kubernetes is used to orchestrate the contianers • Jenkins is used for continuous delivery • There should be an external configuration for diff environments • Putting debug mode in dev environment only • Activating new functionality through configuration
  • 26. Challenges • Business concerns • Integration between teams is difficult • Many trainings need to be done as different dev. Stacks • There is no standard in MS. • Solution will rely on some standards (HTTP,SQL,..) but not standard stack. • There is no single framework, but there is an integration of different technologies • No single support • Cost • Small team • Cheap start, cheap deployments on cloud • Time • Faster to market.
  • 27. Challenges • Technical concerns • Design • How to partition the system to services (invoices could’ve been services) • How small !? • Technical diversity • Choose programming language • Right database • Distribution • Communication over network • How to deal with network failures (circuit breaker) • Data store • Database per subdomain • Keep data in sync • Security • Access token renewal
  • 28. Challenges • Technical concerns • Testing • Less code will be tested • Test in isolation • Integration testing is hard • Maintenance • Less code to maintain • Less code to understand • Extensibility • New feature, new MS
  • 29. When to use MS ? Time to market Extensibility Replicability Scalability