SlideShare a Scribd company logo
PAGE 1 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
#GHC16
2016Building Resilient Distributed
Systems by Using Caching
Command and Rollback-Replay
Tanuja Phadke
tanuja_phadke@intuit.com
PAGE 2 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
The problem with resiliency in distributed systems
Single node system
Node
Database1
Web
container
caching
Database2
• All components reside in the same
machine.
• It’s not too hard to ensure atomicity.
• Either all occur or nothing occurs
PAGE 3 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
The problem with resiliency in distributed systems
node node1
node2
node2node1
node1 node2
• Components are spread out.
• Maintaining atomicity and resiliency is a
challenge.
• So we strive for eventual consistency.
• The change will eventually be propagated
to all the copies of data.
PAGE 4 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Intuit case study: Login Service
Intuit makes financial software. Many of these products
use the Login service for login and fetching users’ bank
accounts and transactions securely.
PAGE 5 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Requirements for the Login Service
• Fast response times
• Resilience
• Fault-tolerance
• Consistency
PAGE 6 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
4-step solution we used to solve the problem
1. Decouple design
a. Implement single responsibility principle (SRP)
b. Use the command pattern
2. Use circuit breaker framework
3. Use reactor to recover
4. Use caching (record)
PAGE 7 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
1. Decouple design
• Individual components can be developed independently.
• Plug and play components into bigger solution.
PAGE 8 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
1a. Implement single responsibility principle
• Module or class should have responsibility over a single part
of the functionality provided by the software, and that
responsibility should be entirely encapsulated by the class. All
its services should be narrowly aligned with that
responsibility.
• Separation of concerns
• Each module/method does only one task.
PAGE 9 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
1b. Use command pattern
Invoker
Client
creates
<<interface>>
Command
execute()
recover()
Concrete
Command A
Concrete
Command B
implements
uses
creates
A behavioral design pattern in which an object is used to encapsulate all
information needed to perform an action or trigger an event at a later time.
PAGE 10 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Benefits of the command pattern
• Each command knows how to execute itself.
• Each command knows how to react to failures.
• Rollback
• Retry
• Something else
PAGE 11 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Traditional model with services
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
PAGE 12 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Introduce commands
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
Command
create, update ...
Command
create, update ...
PAGE 13 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
2. Use circuit breaker
• Circuit breaker is used to detect failures, and encapsulates
logic to reacting to failure (during maintenance, temporary
external system failure or unexpected system difficulties).
• The circuit breaker pattern is a stability patterns applied in a
RESTful architecture.
• Several open sources are available (Hystrix is developed by
Netflix and is popular open source).
PAGE 14 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Example of circuit breaker
PAGE 15 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
3. Use reactor
• Gets invoked in case of failure.
• We can specify the behavior.
• Rollback
• Retry
• Trigger a back-up
• Fallback
PAGE 16 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Use circuit breaker
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
Circuit breaker
Fallback
Short circuit
Log error
Error response
CommandCommand
PAGE 17 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
4. Use caching
• Use cache to save the commands so that they can be used for
recovery.
• Some popular open source solutions:
• Hazelcast
• Memcache
• Redis
PAGE 18 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
4. Use caching
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
Fallback
Short circuit
Log error
Error response
Cache
Client
Cache
Cache
Listener
[Reactor]
PAGE 19 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Full resilient picture
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
PAGE 20 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Service A fails
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
Fallback
Short circuit
Log error
Error response
PAGE 21 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Service A is successful and Service B fails
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
Fallback
Short circuit
Log error
Error response
Cache
Client
Cache
Cache
Listener
[Reactor]
Reactor(recover)
Caching dirty
PAGE 22 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Service A and Service B both succeed
Orchestration
Handler
Service A
Service B
create
update
delete
get
create
update
delete
get
GET
PUT
Fallback
Short circuit
Log error
Error response
Cache
Client
Cache
Cache
Listener
[Reactor]
Caching(record)
Not Dirty
PAGE 23 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
4-step solution we used to solve the problem
1. Decouple design
a. Implement single responsibility principle (SRP)
b. Use the command pattern
2. Use caching (record)
3. Use circuit breaker framework
4. Use reactor to recover
PAGE 24 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Our story: How did we benefit?
Over 100 user update requests were failing.
• They got slow responses.
• Resulted in high CPU utilization and cascading failures.
After we implemented this solution, we failed fast and
could adhere to the SLAs.
PAGE 25 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
For more info ...
Retry pattern
https://msdn.microsoft.com/en-us/library/dn589788.aspx
Command Handling
http://www.axonframework.org/docs/2.0/command-
handling.html
PAGE 26 | GRACE HOPPER CELEBRATION 2016 | #GHC16
PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY
Thank you
Feedback?
Download at http://bit.ly/ghc16app
or search GHC 16 in the app store
Rate and review the session
on our mobile app

More Related Content

Viewers also liked

Dispatches From The New Economy: The On-Demand Economy And The Future Of Work
Dispatches From The New Economy: The On-Demand Economy And The Future Of WorkDispatches From The New Economy: The On-Demand Economy And The Future Of Work
Dispatches From The New Economy: The On-Demand Economy And The Future Of Work
Intuit Inc.
 
Dispatches From the New Economy: The On-Demand Workforce
Dispatches From the New Economy: The On-Demand WorkforceDispatches From the New Economy: The On-Demand Workforce
Dispatches From the New Economy: The On-Demand Workforce
Intuit Inc.
 
Transforming the IT Mindset - Interop 2016
Transforming the IT Mindset - Interop 2016Transforming the IT Mindset - Interop 2016
Transforming the IT Mindset - Interop 2016
Intuit Inc.
 
Alex Balazs on Scalable Services at GlueCon 2016
Alex Balazs on Scalable Services at GlueCon 2016Alex Balazs on Scalable Services at GlueCon 2016
Alex Balazs on Scalable Services at GlueCon 2016
Intuit Inc.
 
Dispatches from the New Economy
Dispatches from the New EconomyDispatches from the New Economy
Dispatches from the New Economy
Intuit Inc.
 
The Real Value of Small Business Apps
The Real Value of Small Business AppsThe Real Value of Small Business Apps
The Real Value of Small Business Apps
Intuit Inc.
 
Small Business Success in the Cloud
Small Business Success in the CloudSmall Business Success in the Cloud
Small Business Success in the Cloud
Intuit Inc.
 
Dispatches From The New Economy: The Five Faces Of The On-Demand Economy
Dispatches From The New Economy: The Five Faces Of The On-Demand EconomyDispatches From The New Economy: The Five Faces Of The On-Demand Economy
Dispatches From The New Economy: The Five Faces Of The On-Demand Economy
Intuit Inc.
 
eBook: The Appification of Small Business
eBook: The Appification of Small BusinesseBook: The Appification of Small Business
eBook: The Appification of Small Business
Intuit Developer
 
Beyond the Gig Economy: How New Technologies Are Reshaping the Future of Work
Beyond the Gig Economy: How New Technologies Are Reshaping the Future of WorkBeyond the Gig Economy: How New Technologies Are Reshaping the Future of Work
Beyond the Gig Economy: How New Technologies Are Reshaping the Future of Work
Thumbtack, Inc.
 
The Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The FutureThe Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The Future
Arturo Pelayo
 
Handling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks OnlineHandling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks Online
Intuit Inc.
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeaways
Havas
 
Top Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventTop Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big Event
ChromeInfo Technologies
 
The Physical Interface
The Physical InterfaceThe Physical Interface
The Physical Interface
Josh Clark
 
[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?
InterQuest Group
 
Why Cleanweb Will Beat Cleantech
Why Cleanweb Will Beat CleantechWhy Cleanweb Will Beat Cleantech
Why Cleanweb Will Beat Cleantech
Blake Burris
 
Brick & Mortar's Secret Weapon: Search Data By Andrew Ruegger
Brick & Mortar's Secret Weapon: Search Data By Andrew RueggerBrick & Mortar's Secret Weapon: Search Data By Andrew Ruegger
Brick & Mortar's Secret Weapon: Search Data By Andrew Ruegger
Search Marketing Expo - SMX
 
Paid Search Fundamentals By Matt Van Wagner
Paid Search Fundamentals By Matt Van WagnerPaid Search Fundamentals By Matt Van Wagner
Paid Search Fundamentals By Matt Van Wagner
Search Marketing Expo - SMX
 

Viewers also liked (19)

Dispatches From The New Economy: The On-Demand Economy And The Future Of Work
Dispatches From The New Economy: The On-Demand Economy And The Future Of WorkDispatches From The New Economy: The On-Demand Economy And The Future Of Work
Dispatches From The New Economy: The On-Demand Economy And The Future Of Work
 
Dispatches From the New Economy: The On-Demand Workforce
Dispatches From the New Economy: The On-Demand WorkforceDispatches From the New Economy: The On-Demand Workforce
Dispatches From the New Economy: The On-Demand Workforce
 
Transforming the IT Mindset - Interop 2016
Transforming the IT Mindset - Interop 2016Transforming the IT Mindset - Interop 2016
Transforming the IT Mindset - Interop 2016
 
Alex Balazs on Scalable Services at GlueCon 2016
Alex Balazs on Scalable Services at GlueCon 2016Alex Balazs on Scalable Services at GlueCon 2016
Alex Balazs on Scalable Services at GlueCon 2016
 
Dispatches from the New Economy
Dispatches from the New EconomyDispatches from the New Economy
Dispatches from the New Economy
 
The Real Value of Small Business Apps
The Real Value of Small Business AppsThe Real Value of Small Business Apps
The Real Value of Small Business Apps
 
Small Business Success in the Cloud
Small Business Success in the CloudSmall Business Success in the Cloud
Small Business Success in the Cloud
 
Dispatches From The New Economy: The Five Faces Of The On-Demand Economy
Dispatches From The New Economy: The Five Faces Of The On-Demand EconomyDispatches From The New Economy: The Five Faces Of The On-Demand Economy
Dispatches From The New Economy: The Five Faces Of The On-Demand Economy
 
eBook: The Appification of Small Business
eBook: The Appification of Small BusinesseBook: The Appification of Small Business
eBook: The Appification of Small Business
 
Beyond the Gig Economy: How New Technologies Are Reshaping the Future of Work
Beyond the Gig Economy: How New Technologies Are Reshaping the Future of WorkBeyond the Gig Economy: How New Technologies Are Reshaping the Future of Work
Beyond the Gig Economy: How New Technologies Are Reshaping the Future of Work
 
The Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The FutureThe Future Of Work & The Work Of The Future
The Future Of Work & The Work Of The Future
 
Handling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks OnlineHandling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks Online
 
SXSW 2016 takeaways
SXSW 2016 takeawaysSXSW 2016 takeaways
SXSW 2016 takeaways
 
Top Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventTop Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big Event
 
The Physical Interface
The Physical InterfaceThe Physical Interface
The Physical Interface
 
[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?[Infographic] How will Internet of Things (IoT) change the world as we know it?
[Infographic] How will Internet of Things (IoT) change the world as we know it?
 
Why Cleanweb Will Beat Cleantech
Why Cleanweb Will Beat CleantechWhy Cleanweb Will Beat Cleantech
Why Cleanweb Will Beat Cleantech
 
Brick & Mortar's Secret Weapon: Search Data By Andrew Ruegger
Brick & Mortar's Secret Weapon: Search Data By Andrew RueggerBrick & Mortar's Secret Weapon: Search Data By Andrew Ruegger
Brick & Mortar's Secret Weapon: Search Data By Andrew Ruegger
 
Paid Search Fundamentals By Matt Van Wagner
Paid Search Fundamentals By Matt Van WagnerPaid Search Fundamentals By Matt Van Wagner
Paid Search Fundamentals By Matt Van Wagner
 

Similar to Building Resilient Distributed Systems by Using Caching Command and Rollback-Replay

Stor c gregynog colloquium
Stor c   gregynog colloquiumStor c   gregynog colloquium
Stor c gregynog colloquium
gregynog
 
GHC16_BuildingResiliencyInMulti-tierSystems
GHC16_BuildingResiliencyInMulti-tierSystemsGHC16_BuildingResiliencyInMulti-tierSystems
GHC16_BuildingResiliencyInMulti-tierSystems
Shreya Mukhopadhyay
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Josiah Renaudin
 
Beyond the IOPS: Flash Storage Essentials for Performance & Uptimes
Beyond the IOPS: Flash Storage Essentials for Performance & UptimesBeyond the IOPS: Flash Storage Essentials for Performance & Uptimes
Beyond the IOPS: Flash Storage Essentials for Performance & Uptimes
SolarWinds
 
Javaone 2016 - Operational Excellence with Hystrix
Javaone 2016 - Operational Excellence with HystrixJavaone 2016 - Operational Excellence with Hystrix
Javaone 2016 - Operational Excellence with Hystrix
Billy Yuen
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
Ivano Malavolta
 
Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...
Aleksandr Tarasov
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
Kyrylo Reznykov
 
ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010
ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010
ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010
ARC Advisory Group
 
Jfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyJfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copy
TAMILMARAN C
 
Administrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA HumAdministrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA Hum
Atlassian
 
Administrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA HumAdministrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA Hum
Atlassian
 
IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...
IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...
IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...
IRJET Journal
 
LCU14 303- Toolchain Collaboration
LCU14 303- Toolchain CollaborationLCU14 303- Toolchain Collaboration
LCU14 303- Toolchain Collaboration
Linaro
 
Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...
Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...
Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...
DevOps.com
 
Presentazione rockwell automation
Presentazione rockwell automationPresentazione rockwell automation
Presentazione rockwell automation
marcozigliolicavanna
 
Trevor Campbell - Creating a Global Infrastructure to Support China - SUGCON
Trevor Campbell - Creating a Global Infrastructure to Support China - SUGCONTrevor Campbell - Creating a Global Infrastructure to Support China - SUGCON
Trevor Campbell - Creating a Global Infrastructure to Support China - SUGCON
SUGCON
 
Edge Computing: Bringing the Internet Closer to You
Edge Computing: Bringing the Internet Closer to YouEdge Computing: Bringing the Internet Closer to You
Edge Computing: Bringing the Internet Closer to You
Megan O'Keefe
 
Sprint 126
Sprint 126Sprint 126
Sprint 126
ManageIQ
 

Similar to Building Resilient Distributed Systems by Using Caching Command and Rollback-Replay (20)

Stor c gregynog colloquium
Stor c   gregynog colloquiumStor c   gregynog colloquium
Stor c gregynog colloquium
 
GHC16_BuildingResiliencyInMulti-tierSystems
GHC16_BuildingResiliencyInMulti-tierSystemsGHC16_BuildingResiliencyInMulti-tierSystems
GHC16_BuildingResiliencyInMulti-tierSystems
 
Analytics in the Manufacturing industry
Analytics in the Manufacturing industryAnalytics in the Manufacturing industry
Analytics in the Manufacturing industry
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
 
Beyond the IOPS: Flash Storage Essentials for Performance & Uptimes
Beyond the IOPS: Flash Storage Essentials for Performance & UptimesBeyond the IOPS: Flash Storage Essentials for Performance & Uptimes
Beyond the IOPS: Flash Storage Essentials for Performance & Uptimes
 
Javaone 2016 - Operational Excellence with Hystrix
Javaone 2016 - Operational Excellence with HystrixJavaone 2016 - Operational Excellence with Hystrix
Javaone 2016 - Operational Excellence with Hystrix
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...Cocktail of Environments. How to Mix Test and Development Environments and St...
Cocktail of Environments. How to Mix Test and Development Environments and St...
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
 
ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010
ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010
ARC's Sal Spada Packaging Machinery Presentation @ ARC Industry Forum 2010
 
Jfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyJfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copy
 
Administrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA HumAdministrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA Hum
 
Administrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA HumAdministrivia: Golden Tips for Making JIRA Hum
Administrivia: Golden Tips for Making JIRA Hum
 
IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...
IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...
IRJET- Supply Chain Network Design for Plant Location and Selection of Capaci...
 
LCU14 303- Toolchain Collaboration
LCU14 303- Toolchain CollaborationLCU14 303- Toolchain Collaboration
LCU14 303- Toolchain Collaboration
 
Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...
Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...
Deliver Unrivaled End-User Experience With Confidence - How Synthetic Monitor...
 
Presentazione rockwell automation
Presentazione rockwell automationPresentazione rockwell automation
Presentazione rockwell automation
 
Trevor Campbell - Creating a Global Infrastructure to Support China - SUGCON
Trevor Campbell - Creating a Global Infrastructure to Support China - SUGCONTrevor Campbell - Creating a Global Infrastructure to Support China - SUGCON
Trevor Campbell - Creating a Global Infrastructure to Support China - SUGCON
 
Edge Computing: Bringing the Internet Closer to You
Edge Computing: Bringing the Internet Closer to YouEdge Computing: Bringing the Internet Closer to You
Edge Computing: Bringing the Internet Closer to You
 
Sprint 126
Sprint 126Sprint 126
Sprint 126
 

More from Intuit Inc.

State of Small Business – Growth and Success Report
State of Small Business – Growth and Success ReportState of Small Business – Growth and Success Report
State of Small Business – Growth and Success Report
Intuit Inc.
 
The State of Small Business Cash Flow
The State of Small Business Cash FlowThe State of Small Business Cash Flow
The State of Small Business Cash Flow
Intuit Inc.
 
Small Business in the Age of AI
Small Business in the Age of AI Small Business in the Age of AI
Small Business in the Age of AI
Intuit Inc.
 
Get financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooksGet financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooks
Intuit Inc.
 
SEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your BusinessSEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your Business
Intuit Inc.
 
Why Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting CustomersWhy Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting Customers
Intuit Inc.
 
Get Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for GrowthGet Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for Growth
Intuit Inc.
 
Giving Clients What They Want
Giving Clients What They WantGiving Clients What They Want
Giving Clients What They Want
Intuit Inc.
 
What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030
Intuit Inc.
 
Pricing in the Digital Age
Pricing in the Digital Age Pricing in the Digital Age
Pricing in the Digital Age
Intuit Inc.
 
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Intuit Inc.
 
Handbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky TransactionsHandbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky Transactions
Intuit Inc.
 
Advanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky TransactionsAdvanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky Transactions
Intuit Inc.
 
Social media is social business
Social media is social business  Social media is social business
Social media is social business
Intuit Inc.
 
Conversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clientsConversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clients
Intuit Inc.
 
Making tax digital
Making tax digital  Making tax digital
Making tax digital
Intuit Inc.
 
Giving clients what they want
Giving clients what they want Giving clients what they want
Giving clients what they want
Intuit Inc.
 
100 percent cloud your action plan for success
100 percent cloud your action plan for success 100 percent cloud your action plan for success
100 percent cloud your action plan for success
Intuit Inc.
 
Attracting and retaining top talent
Attracting and retaining top talent Attracting and retaining top talent
Attracting and retaining top talent
Intuit Inc.
 
Sales strategies to help you close the deal
Sales strategies to help you close the dealSales strategies to help you close the deal
Sales strategies to help you close the deal
Intuit Inc.
 

More from Intuit Inc. (20)

State of Small Business – Growth and Success Report
State of Small Business – Growth and Success ReportState of Small Business – Growth and Success Report
State of Small Business – Growth and Success Report
 
The State of Small Business Cash Flow
The State of Small Business Cash FlowThe State of Small Business Cash Flow
The State of Small Business Cash Flow
 
Small Business in the Age of AI
Small Business in the Age of AI Small Business in the Age of AI
Small Business in the Age of AI
 
Get financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooksGet financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooks
 
SEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your BusinessSEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your Business
 
Why Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting CustomersWhy Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting Customers
 
Get Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for GrowthGet Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for Growth
 
Giving Clients What They Want
Giving Clients What They WantGiving Clients What They Want
Giving Clients What They Want
 
What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030
 
Pricing in the Digital Age
Pricing in the Digital Age Pricing in the Digital Age
Pricing in the Digital Age
 
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
 
Handbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky TransactionsHandbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky Transactions
 
Advanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky TransactionsAdvanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky Transactions
 
Social media is social business
Social media is social business  Social media is social business
Social media is social business
 
Conversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clientsConversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clients
 
Making tax digital
Making tax digital  Making tax digital
Making tax digital
 
Giving clients what they want
Giving clients what they want Giving clients what they want
Giving clients what they want
 
100 percent cloud your action plan for success
100 percent cloud your action plan for success 100 percent cloud your action plan for success
100 percent cloud your action plan for success
 
Attracting and retaining top talent
Attracting and retaining top talent Attracting and retaining top talent
Attracting and retaining top talent
 
Sales strategies to help you close the deal
Sales strategies to help you close the dealSales strategies to help you close the deal
Sales strategies to help you close the deal
 

Recently uploaded

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 

Building Resilient Distributed Systems by Using Caching Command and Rollback-Replay

  • 1. PAGE 1 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY #GHC16 2016Building Resilient Distributed Systems by Using Caching Command and Rollback-Replay Tanuja Phadke tanuja_phadke@intuit.com
  • 2. PAGE 2 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY The problem with resiliency in distributed systems Single node system Node Database1 Web container caching Database2 • All components reside in the same machine. • It’s not too hard to ensure atomicity. • Either all occur or nothing occurs
  • 3. PAGE 3 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY The problem with resiliency in distributed systems node node1 node2 node2node1 node1 node2 • Components are spread out. • Maintaining atomicity and resiliency is a challenge. • So we strive for eventual consistency. • The change will eventually be propagated to all the copies of data.
  • 4. PAGE 4 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Intuit case study: Login Service Intuit makes financial software. Many of these products use the Login service for login and fetching users’ bank accounts and transactions securely.
  • 5. PAGE 5 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Requirements for the Login Service • Fast response times • Resilience • Fault-tolerance • Consistency
  • 6. PAGE 6 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 4-step solution we used to solve the problem 1. Decouple design a. Implement single responsibility principle (SRP) b. Use the command pattern 2. Use circuit breaker framework 3. Use reactor to recover 4. Use caching (record)
  • 7. PAGE 7 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 1. Decouple design • Individual components can be developed independently. • Plug and play components into bigger solution.
  • 8. PAGE 8 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 1a. Implement single responsibility principle • Module or class should have responsibility over a single part of the functionality provided by the software, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility. • Separation of concerns • Each module/method does only one task.
  • 9. PAGE 9 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 1b. Use command pattern Invoker Client creates <<interface>> Command execute() recover() Concrete Command A Concrete Command B implements uses creates A behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time.
  • 10. PAGE 10 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Benefits of the command pattern • Each command knows how to execute itself. • Each command knows how to react to failures. • Rollback • Retry • Something else
  • 11. PAGE 11 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Traditional model with services Orchestration Handler Service A Service B create update delete get create update delete get GET PUT
  • 12. PAGE 12 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Introduce commands Orchestration Handler Service A Service B create update delete get create update delete get GET PUT Command create, update ... Command create, update ...
  • 13. PAGE 13 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 2. Use circuit breaker • Circuit breaker is used to detect failures, and encapsulates logic to reacting to failure (during maintenance, temporary external system failure or unexpected system difficulties). • The circuit breaker pattern is a stability patterns applied in a RESTful architecture. • Several open sources are available (Hystrix is developed by Netflix and is popular open source).
  • 14. PAGE 14 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Example of circuit breaker
  • 15. PAGE 15 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 3. Use reactor • Gets invoked in case of failure. • We can specify the behavior. • Rollback • Retry • Trigger a back-up • Fallback
  • 16. PAGE 16 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Use circuit breaker Orchestration Handler Service A Service B create update delete get create update delete get GET PUT Circuit breaker Fallback Short circuit Log error Error response CommandCommand
  • 17. PAGE 17 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 4. Use caching • Use cache to save the commands so that they can be used for recovery. • Some popular open source solutions: • Hazelcast • Memcache • Redis
  • 18. PAGE 18 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 4. Use caching Orchestration Handler Service A Service B create update delete get create update delete get GET PUT Fallback Short circuit Log error Error response Cache Client Cache Cache Listener [Reactor]
  • 19. PAGE 19 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Full resilient picture Orchestration Handler Service A Service B create update delete get create update delete get GET PUT
  • 20. PAGE 20 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Service A fails Orchestration Handler Service A Service B create update delete get create update delete get GET PUT Fallback Short circuit Log error Error response
  • 21. PAGE 21 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Service A is successful and Service B fails Orchestration Handler Service A Service B create update delete get create update delete get GET PUT Fallback Short circuit Log error Error response Cache Client Cache Cache Listener [Reactor] Reactor(recover) Caching dirty
  • 22. PAGE 22 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Service A and Service B both succeed Orchestration Handler Service A Service B create update delete get create update delete get GET PUT Fallback Short circuit Log error Error response Cache Client Cache Cache Listener [Reactor] Caching(record) Not Dirty
  • 23. PAGE 23 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY 4-step solution we used to solve the problem 1. Decouple design a. Implement single responsibility principle (SRP) b. Use the command pattern 2. Use caching (record) 3. Use circuit breaker framework 4. Use reactor to recover
  • 24. PAGE 24 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Our story: How did we benefit? Over 100 user update requests were failing. • They got slow responses. • Resulted in high CPU utilization and cascading failures. After we implemented this solution, we failed fast and could adhere to the SLAs.
  • 25. PAGE 25 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY For more info ... Retry pattern https://msdn.microsoft.com/en-us/library/dn589788.aspx Command Handling http://www.axonframework.org/docs/2.0/command- handling.html
  • 26. PAGE 26 | GRACE HOPPER CELEBRATION 2016 | #GHC16 PRESENTED BY THE ANITA BORG INSTITUTE AND THE ASSOCIATION FOR COMPUTING MACHINERY Thank you Feedback? Download at http://bit.ly/ghc16app or search GHC 16 in the app store Rate and review the session on our mobile app

Editor's Notes

  1. Based on fast reads, writes requirements we can choose chaches. For mem cache read is fastest, max size of value. http://blog.engineering.aol.com/2015/08/28/a-comparative-study-of-distributed-caches/