SlideShare a Scribd company logo
Building on Quicksand
About Me
• Work at ThoughtWorks Pune
• DDD and Distributed Computing enthusiast
• A fan of Pat Helland
Twitter handle: @shripadagashe
Blog: https://shripad-agashe.github.io
Evolution of systems
Image source: https://commons.wikimedia.org/wiki/File:Front_Z9_2094.jpg
Image Source: https://en.wikipedia.org/wiki/Solaris_Cluster#/media/
File:Sun_Microsystems_Solaris_computer_cluster.jpg
Vs
Reliability Is a steep curve
Downtime vs % availability
0
225
450
675
900
99 99.9 99.99 99.999
Downtime in Seconds
%Availability Per Year
Per
month
Per day
99 3.65 days 7.2 hour
14.4
minutes
99.9
8.76
hours
43.8
minutes
1.44
minutes
99.99
52
minutes
4.38
munutes
9 seconds
99.999
5.26
minutes
25.9
seconds
0.8
seoncds
And It has a price
0
250
500
750
1000
99 99.9 99.99 99.999
Probability theory to the
rescue
Union of Probability
P(A) Intersection P(B) = P(A) * P(B)
For 99 % Availability i.e. 1% unavailability Probability of unavailability for 2 servers
= (0.01) * (0.01) = 0.0001
More on Probability
• Systems in series
• Availability = P(A) * P(B)
• Systems in parallel
• Availability = 1 - P(1-A) * P(1-B)
So Architectural patterns
evolve around it
App App
DB
Box Cylinder Architecture Best Practices
•App layer should be
stateless
• Architecture should be
layered
But DB is still on a single
machine
Primary DB
Secondary
DB
Asynchronous
replication
DB high availability is achieved via replication
Active-Active Replication Active-Passive Replication
Primary DB
Secondary
DB
Synchronous
Replication
Move to transaction model
Client In Memory Disk
Write
Write
Commit
Write to Disk
Enterprise organization
Image Source: https://www.flickr.com/photos/mwichary/2356663850
Conway’s Law
Inventory
Sales
Finance
Fulfilment Inventory System
Sales System
Finance
System
Fulfilment
System
Organization IT Systems
Integration via DB
App
App
DB
App
App
DB
What Enabled it:
• 2 Phase Commit
• XA transaction
App 1 App 2
Possible Alternative
App
App
DB
App
App
DB
What Enabled it:
• SOAP
• REST
App 1 App 2
Service
Bouquets and brickbats
+
• Integration is simple
• Familiar for most
developers
• Easier to reason
-
• Any sync call will add
to latency
• Sync calls will
expose system to
variations in behavior
of external systems
Possible alternative
App
App
DB
App
App
DB
App 1 App 2
Replication
Replication Patterns
• Via file
• Batch app for replication
• Event driven replication using message queues
Bouquets and brickbats
+
• As there is no sync call, it
does not add additional
latency to app
• As systems are isolated
chances of failure
propagation are minimal
• With Pub Sub changes can
be propagated to multiple
subscriber with minimal
additional work
-
• Integration may not be
trivial
• Async propagation of data
needs careful reasoning
Probabilistic Business Rules
• When we have asynchronous replication we have
windows of failure that mean work may be lost or
delayed.
• Distribution + AsynchronyàProbabilities of
Enforcement
Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
Asynchrony and Truth
Image source: https://www.flickr.com/photos/stevenpisano/16595925953
Here comes Eventual
Consistency
• Eventual consistency guarantees that subset of previous
writes will be returned; eventually it will return all
writes.
• There is no guarantee of order
• There is no time bound on eventual
• Loosely defined term which guarantees nothing. The
application should tolerate any subset of writes
without any time guarantee
• As opposed to EC being a single concept it is a spectrum
• On one end of spectrum is strong consistency
• On the other end eventual consistency
Eventual consistency thru simple
example
Official scorekeeper:
score = Read (“visitors”);
Write	(“visitors”,	score	+1);
Umpire:
if middle of 9th
inning then
vScore = Read (“visitors”);
hScore = Read (“home”);
if vScore < hScore
end game;
Radio reporter:
do {
vScore = Read (“visitors”);
hScore = Read (“home”);
report vScore and hScore;
sleep (30 minutes);
}
Sportswriter:
While not end of game {
drink beer;
smoke cigar;
}
go out to dinner;
vScore = Read (“visitors”);
hScore = Read (“home”);
write article;
Statistician:
Wait for end of game;
score = Read (“home”);
stat = Read (“season-runs”);
Write	(“season-runs”,	stat	+				
score);
Stat watcher:
stat = Read (“season-
runs”);
discuss stats with friends;
Strong	Consistency See	all	previous	writes.
Eventual	Consistency See	subset	of	previous	writes.
Consistent	Prefix See	initial	sequence	of	writes.
Bounded	Staleness See	all	“old”	writes.
Monotonic	Reads See	increasing	subset	of	writes.
Read	My	Writes See	all	writes	performed	by	reader.
Source:http://cacm.acm.org/magazines/2013/12/169945-replicated-data-consistency-explained-through-baseball/fulltext#F8
Not everyone needs same
thing
• Often different roles have different tolerances for
stale information
• The trade off between correctness and availability
can bring in more revenue
• The trade off is often driven by business value
Whats the Risk Appetite
• Consistency is often cost of doing business
• The major point is that availability (and its cousins offline and
latency-reduction) may be traded off with classic notions of
consistency. This tradeoff may frequently be applied across many
different aspects at many levels of granularity within a single
application.
• Locally clear a check if the face value is less than $10,000. If it exceeds
$10,000, double check with all the replicas to make sure it clears
• Schedule the shipment of a “Harry Potter” book based on a local
opinion of the inventory. In contrast, the one and only one Gutenberg
bible requires strict coordination!
Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
Memories, Guesses,
Apologies
• The idea is that everything is done locally with a
subset of the global knowledge.
• You know what you know when an action is
performed. Since you have only a subset of the
knowledge, your actions are really only guesses.
• When your knowledge as a replica increases, you
may have an “Oh, crap!” moment.
Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
• Every business has to be ready for apologies.
• Consider a case where the only book in inventory is
scheduled for delivery.
• In preparing the book for shipment, it is run over by the
forklift in the warehouse.
• So correct software non withstanding you will need
to apologize
More on Apologies
Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
How to apologize
• First of all recognize if you need to apologize
• Identify promises that could not be completed
• Unique identifier across systems becomes critical to
identify failures
• Typically the mistakes are identified during
reconciliation
• Based on severity apology can be handled by system
based on rules or directed for human involvement
What inhibits business trade offs
• The layering of an arbitrary application atop a storage subsystem
inhibits reordering (and also apologies)
• Logical delete vs Actual delete of row
• Only when commutative operations are used can we achieve the
desired loose coupling.
• Application operations can be commutative
Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
Commutative Business Transactions
• Order insensitive logic
• Valid Account creation - Create dummy account first and then
attach customer to it later
• Credit to account
• Visibility of business operations
• Logical deletion of record
Back to the Future
Vs
We need to partner with
people like him
Image source: https://commons.wikimedia.org/wiki/File:Jackie_Stewart_2011_British_Grand_Prix.jpg
So whats in it for You
• The technique explained requires business person
to be IT sympathetic
• Business has to align with IT and see IT as a
competitive advantage
• Developing with us rather than developing for us
mentality
Image source: https://commons.wikimedia.org/wiki/File:Jackie_Stewart_2011_British_Grand_Prix.jpg
• Move from DB Centric view of consistency to
application centric view of consistency
• Carefully make trade offs in IT systems to limit
losses and increase upside
• Look for inspiration in business practices
developed for world without instant information
Key takeaway

More Related Content

PDF
Real world IoT for enterprises
PPT
Building Resilient Microservices
PPTX
Design Like a Pro: Building Better HMI Navigation Schemes
PPTX
Containers and microservices create new performance challenges kowall - app...
PPTX
Five Steps to DevOps Success - Avoiding the High Cost of Downtime
PDF
[WSO2Con EU 2017] The Effects of Microservices on Corporate IT Strategy
PPTX
July webinar slides industry 4.0 view from the front lines
PPTX
The Newgistics Digital Transformation Journey
Real world IoT for enterprises
Building Resilient Microservices
Design Like a Pro: Building Better HMI Navigation Schemes
Containers and microservices create new performance challenges kowall - app...
Five Steps to DevOps Success - Avoiding the High Cost of Downtime
[WSO2Con EU 2017] The Effects of Microservices on Corporate IT Strategy
July webinar slides industry 4.0 view from the front lines
The Newgistics Digital Transformation Journey

What's hot (20)

PPTX
Design Like a Pro: Machine Learning Basics
PPTX
Design Like a Pro: Machine Learning Basics
PPTX
Get More Data Into Your SCADA
PPTX
Fixing SCADA: How Ignition Saves Money
PDF
Ready for Fast Data: How Lightbend Enables Teams To Build Real-Time, Streamin...
PPTX
4 Keys to Removing Friction in Your Industrial Organization
PDF
WSO2Con USA 2017: IoT in Airline Operations
PPTX
Touring Tomorrow's Digital Factory
PPTX
Design Like a Pro: Essential Steps for Enterprise Architectures
PPTX
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
PDF
WSO2Con USA 2017: Geospatial Big Data – Location Intelligence in Digital Tran...
PDF
Pivotal Digital Transformation Forum: Accelerate Time to Market with Business...
PPTX
20160000 Cloud Discovery Event - Cloud Access Security Brokers
PPTX
ZStack architecture overview
PPTX
Webinar- Internet of Things: Application Frameworks in IoT
PPTX
Webinar IoT Cloud Platforms and Middleware for Rapid Application Development
PPTX
7 Innovations That Will Transform IT Operations
PPTX
Splunk live university of alberta 2015
PDF
The role of integration in your cloud-native transformation (Richard Seroter ...
PDF
mHealth Summit EU 2015
Design Like a Pro: Machine Learning Basics
Design Like a Pro: Machine Learning Basics
Get More Data Into Your SCADA
Fixing SCADA: How Ignition Saves Money
Ready for Fast Data: How Lightbend Enables Teams To Build Real-Time, Streamin...
4 Keys to Removing Friction in Your Industrial Organization
WSO2Con USA 2017: IoT in Airline Operations
Touring Tomorrow's Digital Factory
Design Like a Pro: Essential Steps for Enterprise Architectures
Event-Driven Serverless Architecture - the next big thing in the cloud (Cleme...
WSO2Con USA 2017: Geospatial Big Data – Location Intelligence in Digital Tran...
Pivotal Digital Transformation Forum: Accelerate Time to Market with Business...
20160000 Cloud Discovery Event - Cloud Access Security Brokers
ZStack architecture overview
Webinar- Internet of Things: Application Frameworks in IoT
Webinar IoT Cloud Platforms and Middleware for Rapid Application Development
7 Innovations That Will Transform IT Operations
Splunk live university of alberta 2015
The role of integration in your cloud-native transformation (Richard Seroter ...
mHealth Summit EU 2015
Ad

Similar to Building on quicksand microservices indicthreads (20)

PDF
Security & Privacy in Cloud Computing
PDF
Microservices, Kubernetes, and Application Modernization Done Right
PDF
Digital Transformation with Kubernetes, Containers, and Microservices
PPTX
Cleaning Code - Tools and Techniques for Large Legacy Projects
PDF
The Unicorn Project and the Five Ideals.pdf
PDF
Patterns of Distributed Application Design
PPTX
Enterprise Testing in The Cloud
PPTX
The Future is Here
PPTX
8 cloud design patterns you ought to know - Update Conference 2018
PPTX
Cloud Design Patterns - Hong Kong Codeaholics
PDF
Design for Scale / Surge 2010
PDF
Avoiding Cloud Computing Planning & Implementation Failure
PPTX
Using Hystrix to Build Resilient Distributed Systems
PDF
The Need of Cloud-Native Application
PDF
Building data intensive applications
PPTX
Getting Started in the Nonprofit Cloud
PDF
Cloud security: Accelerating cloud adoption
PDF
devops, platforms and devops platforms
PDF
devops, platforms and devops platforms
PDF
QCon 2015 - Microservices Track Notes
Security & Privacy in Cloud Computing
Microservices, Kubernetes, and Application Modernization Done Right
Digital Transformation with Kubernetes, Containers, and Microservices
Cleaning Code - Tools and Techniques for Large Legacy Projects
The Unicorn Project and the Five Ideals.pdf
Patterns of Distributed Application Design
Enterprise Testing in The Cloud
The Future is Here
8 cloud design patterns you ought to know - Update Conference 2018
Cloud Design Patterns - Hong Kong Codeaholics
Design for Scale / Surge 2010
Avoiding Cloud Computing Planning & Implementation Failure
Using Hystrix to Build Resilient Distributed Systems
The Need of Cloud-Native Application
Building data intensive applications
Getting Started in the Nonprofit Cloud
Cloud security: Accelerating cloud adoption
devops, platforms and devops platforms
devops, platforms and devops platforms
QCon 2015 - Microservices Track Notes
Ad

More from IndicThreads (20)

PPTX
Http2 is here! And why the web needs it
ODP
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
PPT
Go Programming Language - Learning The Go Lang way
PPT
App using golang indicthreads
PDF
How to Think in RxJava Before Reacting
PPT
Iot secure connected devices indicthreads
PPT
IoT testing and quality assurance indicthreads
PPT
Functional Programming Past Present Future
PDF
Harnessing the Power of Java 8 Streams
PDF
Building & scaling a live streaming mobile platform - Gr8 road to fame
PPTX
Internet of things architecture perspective - IndicThreads Conference
PDF
Cars and Computers: Building a Java Carputer
PPTX
Scrap Your MapReduce - Apache Spark
PPT
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
PPTX
Speed up your build pipeline for faster feedback
PPT
Unraveling OpenStack Clouds
PPTX
Digital Transformation of the Enterprise. What IT leaders need to know!
PDF
Architectural Considerations For Complex Mobile And Web Applications
PPTX
Functional Programming With Lambdas and Streams in JDK8
PDF
Changing application demands: What developers need to know
Http2 is here! And why the web needs it
Understanding Bitcoin (Blockchain) and its Potential for Disruptive Applications
Go Programming Language - Learning The Go Lang way
App using golang indicthreads
How to Think in RxJava Before Reacting
Iot secure connected devices indicthreads
IoT testing and quality assurance indicthreads
Functional Programming Past Present Future
Harnessing the Power of Java 8 Streams
Building & scaling a live streaming mobile platform - Gr8 road to fame
Internet of things architecture perspective - IndicThreads Conference
Cars and Computers: Building a Java Carputer
Scrap Your MapReduce - Apache Spark
Continuous Integration (CI) and Continuous Delivery (CD) using Jenkins & Docker
Speed up your build pipeline for faster feedback
Unraveling OpenStack Clouds
Digital Transformation of the Enterprise. What IT leaders need to know!
Architectural Considerations For Complex Mobile And Web Applications
Functional Programming With Lambdas and Streams in JDK8
Changing application demands: What developers need to know

Recently uploaded (20)

PPTX
Transform Your Business with a Software ERP System
PPTX
history of c programming in notes for students .pptx
PDF
Nekopoi APK 2025 free lastest update
PDF
Digital Strategies for Manufacturing Companies
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
AI in Product Development-omnex systems
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
top salesforce developer skills in 2025.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
System and Network Administration Chapter 2
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPT
Introduction Database Management System for Course Database
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Odoo POS Development Services by CandidRoot Solutions
Transform Your Business with a Software ERP System
history of c programming in notes for students .pptx
Nekopoi APK 2025 free lastest update
Digital Strategies for Manufacturing Companies
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Operating system designcfffgfgggggggvggggggggg
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Softaken Excel to vCard Converter Software.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
AI in Product Development-omnex systems
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
top salesforce developer skills in 2025.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
System and Network Administration Chapter 2
How Creative Agencies Leverage Project Management Software.pdf
Introduction Database Management System for Course Database
ManageIQ - Sprint 268 Review - Slide Deck
Odoo POS Development Services by CandidRoot Solutions

Building on quicksand microservices indicthreads

  • 2. About Me • Work at ThoughtWorks Pune • DDD and Distributed Computing enthusiast • A fan of Pat Helland Twitter handle: @shripadagashe Blog: https://shripad-agashe.github.io
  • 3. Evolution of systems Image source: https://commons.wikimedia.org/wiki/File:Front_Z9_2094.jpg Image Source: https://en.wikipedia.org/wiki/Solaris_Cluster#/media/ File:Sun_Microsystems_Solaris_computer_cluster.jpg Vs
  • 4. Reliability Is a steep curve Downtime vs % availability 0 225 450 675 900 99 99.9 99.99 99.999 Downtime in Seconds %Availability Per Year Per month Per day 99 3.65 days 7.2 hour 14.4 minutes 99.9 8.76 hours 43.8 minutes 1.44 minutes 99.99 52 minutes 4.38 munutes 9 seconds 99.999 5.26 minutes 25.9 seconds 0.8 seoncds
  • 5. And It has a price 0 250 500 750 1000 99 99.9 99.99 99.999
  • 6. Probability theory to the rescue Union of Probability P(A) Intersection P(B) = P(A) * P(B) For 99 % Availability i.e. 1% unavailability Probability of unavailability for 2 servers = (0.01) * (0.01) = 0.0001
  • 7. More on Probability • Systems in series • Availability = P(A) * P(B) • Systems in parallel • Availability = 1 - P(1-A) * P(1-B)
  • 8. So Architectural patterns evolve around it App App DB Box Cylinder Architecture Best Practices •App layer should be stateless • Architecture should be layered
  • 9. But DB is still on a single machine Primary DB Secondary DB Asynchronous replication DB high availability is achieved via replication Active-Active Replication Active-Passive Replication Primary DB Secondary DB Synchronous Replication
  • 10. Move to transaction model Client In Memory Disk Write Write Commit Write to Disk
  • 11. Enterprise organization Image Source: https://www.flickr.com/photos/mwichary/2356663850
  • 12. Conway’s Law Inventory Sales Finance Fulfilment Inventory System Sales System Finance System Fulfilment System Organization IT Systems
  • 13. Integration via DB App App DB App App DB What Enabled it: • 2 Phase Commit • XA transaction App 1 App 2
  • 14. Possible Alternative App App DB App App DB What Enabled it: • SOAP • REST App 1 App 2 Service
  • 15. Bouquets and brickbats + • Integration is simple • Familiar for most developers • Easier to reason - • Any sync call will add to latency • Sync calls will expose system to variations in behavior of external systems
  • 16. Possible alternative App App DB App App DB App 1 App 2 Replication Replication Patterns • Via file • Batch app for replication • Event driven replication using message queues
  • 17. Bouquets and brickbats + • As there is no sync call, it does not add additional latency to app • As systems are isolated chances of failure propagation are minimal • With Pub Sub changes can be propagated to multiple subscriber with minimal additional work - • Integration may not be trivial • Async propagation of data needs careful reasoning
  • 18. Probabilistic Business Rules • When we have asynchronous replication we have windows of failure that mean work may be lost or delayed. • Distribution + AsynchronyàProbabilities of Enforcement Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
  • 19. Asynchrony and Truth Image source: https://www.flickr.com/photos/stevenpisano/16595925953
  • 20. Here comes Eventual Consistency • Eventual consistency guarantees that subset of previous writes will be returned; eventually it will return all writes. • There is no guarantee of order • There is no time bound on eventual • Loosely defined term which guarantees nothing. The application should tolerate any subset of writes without any time guarantee • As opposed to EC being a single concept it is a spectrum • On one end of spectrum is strong consistency • On the other end eventual consistency
  • 21. Eventual consistency thru simple example Official scorekeeper: score = Read (“visitors”); Write (“visitors”, score +1); Umpire: if middle of 9th inning then vScore = Read (“visitors”); hScore = Read (“home”); if vScore < hScore end game; Radio reporter: do { vScore = Read (“visitors”); hScore = Read (“home”); report vScore and hScore; sleep (30 minutes); } Sportswriter: While not end of game { drink beer; smoke cigar; } go out to dinner; vScore = Read (“visitors”); hScore = Read (“home”); write article; Statistician: Wait for end of game; score = Read (“home”); stat = Read (“season-runs”); Write (“season-runs”, stat + score); Stat watcher: stat = Read (“season- runs”); discuss stats with friends; Strong Consistency See all previous writes. Eventual Consistency See subset of previous writes. Consistent Prefix See initial sequence of writes. Bounded Staleness See all “old” writes. Monotonic Reads See increasing subset of writes. Read My Writes See all writes performed by reader. Source:http://cacm.acm.org/magazines/2013/12/169945-replicated-data-consistency-explained-through-baseball/fulltext#F8
  • 22. Not everyone needs same thing • Often different roles have different tolerances for stale information • The trade off between correctness and availability can bring in more revenue • The trade off is often driven by business value
  • 23. Whats the Risk Appetite • Consistency is often cost of doing business • The major point is that availability (and its cousins offline and latency-reduction) may be traded off with classic notions of consistency. This tradeoff may frequently be applied across many different aspects at many levels of granularity within a single application. • Locally clear a check if the face value is less than $10,000. If it exceeds $10,000, double check with all the replicas to make sure it clears • Schedule the shipment of a “Harry Potter” book based on a local opinion of the inventory. In contrast, the one and only one Gutenberg bible requires strict coordination! Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
  • 24. Memories, Guesses, Apologies • The idea is that everything is done locally with a subset of the global knowledge. • You know what you know when an action is performed. Since you have only a subset of the knowledge, your actions are really only guesses. • When your knowledge as a replica increases, you may have an “Oh, crap!” moment. Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
  • 25. • Every business has to be ready for apologies. • Consider a case where the only book in inventory is scheduled for delivery. • In preparing the book for shipment, it is run over by the forklift in the warehouse. • So correct software non withstanding you will need to apologize More on Apologies Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
  • 26. How to apologize • First of all recognize if you need to apologize • Identify promises that could not be completed • Unique identifier across systems becomes critical to identify failures • Typically the mistakes are identified during reconciliation • Based on severity apology can be handled by system based on rules or directed for human involvement
  • 27. What inhibits business trade offs • The layering of an arbitrary application atop a storage subsystem inhibits reordering (and also apologies) • Logical delete vs Actual delete of row • Only when commutative operations are used can we achieve the desired loose coupling. • Application operations can be commutative Source:http://db.cs.berkeley.edu/cs286/papers/quicksand-cidr2009.pdf
  • 28. Commutative Business Transactions • Order insensitive logic • Valid Account creation - Create dummy account first and then attach customer to it later • Credit to account • Visibility of business operations • Logical deletion of record
  • 29. Back to the Future Vs
  • 30. We need to partner with people like him Image source: https://commons.wikimedia.org/wiki/File:Jackie_Stewart_2011_British_Grand_Prix.jpg
  • 31. So whats in it for You • The technique explained requires business person to be IT sympathetic • Business has to align with IT and see IT as a competitive advantage • Developing with us rather than developing for us mentality
  • 32. Image source: https://commons.wikimedia.org/wiki/File:Jackie_Stewart_2011_British_Grand_Prix.jpg • Move from DB Centric view of consistency to application centric view of consistency • Carefully make trade offs in IT systems to limit losses and increase upside • Look for inspiration in business practices developed for world without instant information Key takeaway