SlideShare a Scribd company logo
Enterprise Design Pattern:
ACID principal
Concurrency Patterns
Enterprise Design Patterns
• Transaction Patterns
• Concurrency Patterns
• Distributed Architecture Patterns
• Temporal Patterns
• Distributed Computing Patterns
• Database Patterns
Transaction Patterns
ACID principal
• Atomicity
• Consistency
• Isolation
• Durability
Atomicity
«all or nothing»
Consistency
Only valid data is saved
Isolation
Transactions do not affect each other
Durability
Written data will not be lost
Concurrency Patterns
• Active Object
• Half-Sync/Half-Async
• Leader/Followers
• Thread-Specific Storage
Active Object
It decouples method
execution from method
invocation to enhance
concurrency and simplify
synchronized access to
objects that reside in their
own thread of control
Components:
• Proxy
• Client
• Method Request object
• Activation list
• Scheduler
• Servant
Half-Sync/Half-Async
This pattern decouples
asynchronous and synchronous
service processing in concurrent
systems without reducing
efficiency.
Decompose services in the system
into two layers (synchronous and
asynchronous) and add a queuing
layer between them to mediate
the communication between
services in the asynchronous and
synchronous layers.
Components:
• Synchronous service layer
• Asynchronous service layer
• Queuing layer
• External event sources
• Asynchronous interrupts
strategy
• Proactive I/O strategy
• Notification strategy
Leader/Followers
This pattern provides an efficient
concurrency model where multiple
threads take turns sharing a set of event
sources in order to detect, demultiplex,
dispatch, and process service requests
that occur on the event sources
A pool of threads shares a set of event
sources efficiently by taking turns,
demultiplexing events that arrive on
these event sources and synchronously
dispatching the events to application
services that process them.
Components:
• Handle set
• Event handlers
• Thread pool
• Leader role
• Follower role
• Processing role
Thread-Specific Storage
This pattern allows multiple
threads to use one 'logically
global' access point to
retrieve an object that is local
to a thread—called a
'threadspecific object'—
without incurring locking
overhead for each access to
the object.
Components:
• Thread-specific object
• Key factory
• Thread-specific object set
• Thread-specific object proxy
• Application threads
Thanks
bandysik@gmail.com

More Related Content

What's hot

Cody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_PosterCody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_Poster
Cody Zeng
 
A testing strategy for hexagonal applications
A testing strategy for hexagonal applicationsA testing strategy for hexagonal applications
A testing strategy for hexagonal applications
Matthias Noback
 
Advanced web application architecture - PHP Barcelona
Advanced web application architecture  - PHP BarcelonaAdvanced web application architecture  - PHP Barcelona
Advanced web application architecture - PHP Barcelona
Matthias Noback
 
Java 8
Java 8Java 8
Java 8
vpulec
 
Hibernate concurrency
Hibernate concurrencyHibernate concurrency
Hibernate concurrency
priyank09
 

What's hot (20)

Cody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_PosterCody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_Poster
 
A testing strategy for hexagonal applications
A testing strategy for hexagonal applicationsA testing strategy for hexagonal applications
A testing strategy for hexagonal applications
 
Mule async scope
Mule async scopeMule async scope
Mule async scope
 
Advanced web application architecture Way2Web
Advanced web application architecture Way2WebAdvanced web application architecture Way2Web
Advanced web application architecture Way2Web
 
Agile Tools
Agile ToolsAgile Tools
Agile Tools
 
Ajax
AjaxAjax
Ajax
 
Real time operating systems
Real time operating systemsReal time operating systems
Real time operating systems
 
Advanced web application architecture - PHP Barcelona
Advanced web application architecture  - PHP BarcelonaAdvanced web application architecture  - PHP Barcelona
Advanced web application architecture - PHP Barcelona
 
Java 8
Java 8Java 8
Java 8
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
 
Service abstractions - Part 1: Queries
Service abstractions - Part 1: QueriesService abstractions - Part 1: Queries
Service abstractions - Part 1: Queries
 
Hibernate concurrency
Hibernate concurrencyHibernate concurrency
Hibernate concurrency
 
Lawson ProcessFlow
Lawson ProcessFlowLawson ProcessFlow
Lawson ProcessFlow
 
4. introduction to Asp.Net MVC - Part II
4. introduction to Asp.Net MVC - Part II4. introduction to Asp.Net MVC - Part II
4. introduction to Asp.Net MVC - Part II
 
Workflow Patterns and Correlation 3.7
Workflow Patterns and Correlation 3.7Workflow Patterns and Correlation 3.7
Workflow Patterns and Correlation 3.7
 
SFDC Batch Apex
SFDC Batch ApexSFDC Batch Apex
SFDC Batch Apex
 
Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018
 
README
READMEREADME
README
 
Dynamically Composing Collection Operations through Collection Promises
Dynamically Composing Collection Operations through Collection PromisesDynamically Composing Collection Operations through Collection Promises
Dynamically Composing Collection Operations through Collection Promises
 
Middleware
MiddlewareMiddleware
Middleware
 

Similar to Enterprise Design Pattern: ACID principal ,Concurrency Patterns

Architectural design1
Architectural design1Architectural design1
Architectural design1
Zahid Hussain
 
Architectural design1
Architectural design1Architectural design1
Architectural design1
Zahid Hussain
 
10 architectural design
10 architectural design10 architectural design
10 architectural design
Ayesha Bhatti
 
10 architectural design (1)
10 architectural design (1)10 architectural design (1)
10 architectural design (1)
Ayesha Bhatti
 
The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...
The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...
The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...
mfrancis
 

Similar to Enterprise Design Pattern: ACID principal ,Concurrency Patterns (20)

Deep Dive into Azure Data Factory v2
Deep Dive into Azure Data Factory v2Deep Dive into Azure Data Factory v2
Deep Dive into Azure Data Factory v2
 
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURESOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock
 
Architecture Design in Software Engineering
Architecture Design in Software EngineeringArchitecture Design in Software Engineering
Architecture Design in Software Engineering
 
Architectural design1
Architectural design1Architectural design1
Architectural design1
 
Architectural design1
Architectural design1Architectural design1
Architectural design1
 
10 architectural design
10 architectural design10 architectural design
10 architectural design
 
10 architectural design (1)
10 architectural design (1)10 architectural design (1)
10 architectural design (1)
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentation
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...
The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...
The Future Of Service-Oriented Component Models for the OSGi Framework - Clém...
 
How to grow your own Microservice?
How to grow your own Microservice?How to grow your own Microservice?
How to grow your own Microservice?
 
Revision
RevisionRevision
Revision
 
Different data models
Different data modelsDifferent data models
Different data models
 
Architecture - December 2013 - Avinash Ramineni, Shekhar Veumuri
Architecture   - December 2013 - Avinash Ramineni, Shekhar VeumuriArchitecture   - December 2013 - Avinash Ramineni, Shekhar Veumuri
Architecture - December 2013 - Avinash Ramineni, Shekhar Veumuri
 
ASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge EventASMUG February 2015 Knowledge Event
ASMUG February 2015 Knowledge Event
 
Cloud design principles
Cloud design principlesCloud design principles
Cloud design principles
 
Azure basics
Azure basicsAzure basics
Azure basics
 
Designing microservices part2
Designing microservices part2Designing microservices part2
Designing microservices part2
 

More from Sergey Bandysik (6)

3 kotlin vs. java- what kotlin has that java does not
3  kotlin vs. java- what kotlin has that java does not3  kotlin vs. java- what kotlin has that java does not
3 kotlin vs. java- what kotlin has that java does not
 
2 kotlin vs. java: what java has that kotlin does not
2  kotlin vs. java: what java has that kotlin does not2  kotlin vs. java: what java has that kotlin does not
2 kotlin vs. java: what java has that kotlin does not
 
1 kotlin vs. java: some java issues addressed in kotlin
1  kotlin vs. java: some java issues addressed in kotlin1  kotlin vs. java: some java issues addressed in kotlin
1 kotlin vs. java: some java issues addressed in kotlin
 
What's new in Android M
What's new in Android MWhat's new in Android M
What's new in Android M
 
BlackBerry
BlackBerryBlackBerry
BlackBerry
 
Memory in Android
Memory in AndroidMemory in Android
Memory in Android
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
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...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
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 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
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*
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
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...
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 

Enterprise Design Pattern: ACID principal ,Concurrency Patterns

  • 1. Enterprise Design Pattern: ACID principal Concurrency Patterns
  • 2. Enterprise Design Patterns • Transaction Patterns • Concurrency Patterns • Distributed Architecture Patterns • Temporal Patterns • Distributed Computing Patterns • Database Patterns
  • 3. Transaction Patterns ACID principal • Atomicity • Consistency • Isolation • Durability
  • 6. Isolation Transactions do not affect each other
  • 8. Concurrency Patterns • Active Object • Half-Sync/Half-Async • Leader/Followers • Thread-Specific Storage
  • 9. Active Object It decouples method execution from method invocation to enhance concurrency and simplify synchronized access to objects that reside in their own thread of control Components: • Proxy • Client • Method Request object • Activation list • Scheduler • Servant
  • 10.
  • 11. Half-Sync/Half-Async This pattern decouples asynchronous and synchronous service processing in concurrent systems without reducing efficiency. Decompose services in the system into two layers (synchronous and asynchronous) and add a queuing layer between them to mediate the communication between services in the asynchronous and synchronous layers. Components: • Synchronous service layer • Asynchronous service layer • Queuing layer • External event sources • Asynchronous interrupts strategy • Proactive I/O strategy • Notification strategy
  • 12. Leader/Followers This pattern provides an efficient concurrency model where multiple threads take turns sharing a set of event sources in order to detect, demultiplex, dispatch, and process service requests that occur on the event sources A pool of threads shares a set of event sources efficiently by taking turns, demultiplexing events that arrive on these event sources and synchronously dispatching the events to application services that process them. Components: • Handle set • Event handlers • Thread pool • Leader role • Follower role • Processing role
  • 13.
  • 14. Thread-Specific Storage This pattern allows multiple threads to use one 'logically global' access point to retrieve an object that is local to a thread—called a 'threadspecific object'— without incurring locking overhead for each access to the object. Components: • Thread-specific object • Key factory • Thread-specific object set • Thread-specific object proxy • Application threads
  • 15.