Using sagas to maintain data consistency in a microservice architecture
|
|
- Lindsey Walker
- 5 years ago
- Views:
Transcription
1 Using sagas to maintain data consistency in a microservice architecture Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net
2 Presentation goal Distributed data management challenges in a microservice architecture Sagas as the transaction model
3 About Chris
4 About Chris Consultant and trainer focusing on modern application architectures including microservices (
5 About Chris Founder of a startup that is creating an open-source/saas platform that simplifies the development of transactional microservices (
6 For more information
7 Agenda ACID is not an option Overview of sagas Coordinating sagas
8 The microservice architecture structures an application as a set of loosely coupled services
9 The microservice architecture tackles complexity through modularization * might improve scalability too
10 Microservice architecture Database per service Browser HTML Store Front UI Customer Service Customer Database REST API Gateway Order Service Order Database REST Mobile Device Service Database
11 Loose coupling = encapsulated data Order Service Customer Service Order Database Order table ordertotal Customer Database Customer table creditlimit
12 How to maintain data consistency?!?!? Invariant: sum(open order.total) <= customer.creditlimit
13 Cannot use ACID transactions Distributed transactions BEGIN TRANSACTION Private to the Order Service SELECT ORDER_TOTAL FROM ORDERS WHERE CUSTOMER_ID =? SELECT CREDIT_LIMIT FROM CUSTOMERS WHERE CUSTOMER_ID =? INSERT INTO ORDERS COMMIT TRANSACTION Private to the Customer Service
14 2PC is not an option Guarantees consistency BUT 2PC coordinator is a single point of failure Chatty: at least O(4n) messages, with retries O(n^2) Reduced throughput due to locks Not supported by many NoSQL databases (or message brokers) CAP theorem 2PC impacts availability.
15 Agenda ACID is not an option Overview of sagas Coordinating sagas
16 From a 1987 paper
17 Use Sagas instead of 2PC Distributed transaction Service A XService B Service C Saga Service A Local transaction Service B Local transaction Service C Local transaction
18 Create Order Saga createorder() Order Service Local transaction createorder() Customer Service Local transaction reservecredit() Order Service Local transaction approve order() Order state=pending Customer Order state=approved
19 If only it were this easy
20 Rollback using compensating transactions ACID transactions can simply rollback BUT Developer must write application logic to rollback eventually consistent transactions Careful design required!
21 Saga: Every Ti has a Ci FAILS T1 T2 C1 C2 Compensating transactions T1 T2 C1
22 Create Order Saga - rollback createorder() Insufficient credit Order Service Customer Service Order Service Local transaction createorder() Local transaction reservecredit() FAIL Local transaction reject order() Order Customer Order
23 Sagas complicate API design Request initiates the saga. When to send back the response? Option #1: Send response when saga completes: + Response specifies the outcome - Reduced availability Option #2: Send response immediately after creating the saga (recommended): + Improved availability - Response does not specify the outcome. Client must poll or be notified
24 Revised Create Order API createorder() returns id of newly created order NOT fully validated getorder(id) Called periodically by client to get outcome of validation
25 Minimal impact on UI UI hides asynchronous API from the user Saga will usually appear instantaneous (<= 100ms) If it takes longer UI displays processing popup Server can push notification to UI
26 Sagas complicate the business logic Changes are committed by each step of the saga Other transactions see inconsistent data, e.g. Order.state = PENDING more complex logic Interaction between sagas and other operations e.g. what does it mean to cancel a PENDING Order? Interrupt the Create Order saga Wait for the Create Order saga to complete?
27 Agenda ACID is not an option Overview of sagas Coordinating sagas
28 How to sequence the saga transactions? After the completion of transaction Ti something must decide what step to execute next Success: which T(i+1) - branching Failure: C(i - 1)
29 Orchestration-based saga coordination createorder() CreateOrderSaga Order Service Local transaction createorder() Customer Service Local transaction reservecredit() Order Service Local transaction approve order() Order state=pending Customer Order state=approved
30 Complex coordination logic is centralized
31 Services expose APIs that are invoked by saga
32 CreateOrderSaga orchestrator Create Order Order Service Customer Service OrderService Order state total create() CreateOrder Saga create() approve() reservecredit() creditreserved() Customer creditlimit creditreservations...
33 Saga orchestrators are state machines event [guard] / action reply and action / customerservice. reservecredit() credit reserved / order.approve() RESERVING CREDIT APPROVED Initial action credit limit exceed / order.reject() REJECTED
34 Create Order Saga code State Enum Persistent data Stateless singleton: Behavior Eventuate Saga framework
35 Create Order Saga State machine definition
36 Initializing the saga Create order Invoke saga participant
37 Handling a reply Update Order
38 Customer Service - command handling Reserve credit
39 About Saga orchestrator participant communication command Saga Orchestrator reply Saga Participant Saga Participant Saga must complete even if there are transient failures
40 Use asynchronous messaging
41 Create Order Saga messaging Order Service Commands reserve credit Message Broker Customer Service Create Order Saga Orchestrator Customer Service Request Channel Customer Service Reply Channel Credit Reserved Credit Limit Exceeded Begin TXN Read data Send reply Commit TXN create() approve() reject() Order Replies
42 Messaging must be transactional How to make atomic without 2PC? Service update publish Database Message Broker
43 Option #1: Use database table as a message queue ACID transaction Customer Service INSERT CUSTOMER_CREDIT_RESERVATIONS table Local transaction? Message Publisher Publish INSERT MESSAGE table QUERY DELETE Message Broker ORDER_ID CUSTOMER_ID TOTAL ID TYPE DATA DESTINATION OrderCreated { } See BASE: An Acid Alternative,
44 Publishing messages Poll the MESSAGE table OR Tail the database transaction log
45 Option #2: Event sourcing: event-centric persistence Event table Service Entity id Entity type Event id Event type Event data save events and publish 101 Order 901 OrderCreated 101 Order 902 OrderApproved Event Store 101 Order 903 OrderShipped Every state change event
46 Summary Microservices tackle complexity and accelerate development Database per service is essential for loose coupling Use sagas to maintain data consistency across services Use transactional messaging to make sagas reliable
47 Questions?
ACID Is So Yesterday: Maintaining Data Consistency with Sagas
ACID Is So Yesterday: Maintaining Data Consistency with Sagas Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net http://eventuate.io
More informationManaging data consistency in a microservice architecture using Sagas
Managing data consistency in a microservice architecture using Sagas Chris Richardson Founder of eventuate.io Author of Microservices Patterns Founder of the original CloudFoundry.com Author of POJOs in
More informationThere is no such thing as a microservice!
There is no such thing as a microservice! Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net http://microservices.io http://eventuate.io
More information10. Business Process Management
10. Business Process Management CSEP 545 Transaction Processing Philip A. Bernstein Copyright 2007 Philip A. Bernstein 1 Outline 1. Introduction 2. Managing Process State 3. Making a Workflow ACID 4. Other
More informationBUILDING MICROSERVICES ON AZURE. ~ Vaibhav
BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring
More informationMicroservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli
Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries
More informationJava Enterprise Edition
Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data
More informationDistributed KIDS Labs 1
Distributed Databases @ KIDS Labs 1 Distributed Database System A distributed database system consists of loosely coupled sites that share no physical component Appears to user as a single system Database
More informationReactive Microservices Architecture on AWS
Reactive Microservices Architecture on AWS Sascha Möllering Solutions Architect, @sascha242, Amazon Web Services Germany GmbH Why are we here today? https://secure.flickr.com/photos/mgifford/4525333972
More informationData Management in Application Servers. Dean Jacobs BEA Systems
Data Management in Application Servers Dean Jacobs BEA Systems Outline Clustered Application Servers Adding Web Services Java 2 Enterprise Edition (J2EE) The Application Server platform for Java Java Servlets
More informationOracle WebLogic Integration
Oracle WebLogic Integration Best Practices for WLI Application Life Cycle 10g Release 3 (10.3.1) January 2010 Oracle WebLogic Integration Best Practices for WLI Application Life Cycle, 10g Release 3 (10.3.1)
More informationProposal for Business Transaction Protocol Version 1.0
Proposal for Business Transaction Protocol Version 1.0 Sanjay Dalal (sanjay.dalal@bea.com) Pal Takacsi-Nagy (pal.takacsi@bea.com) Abstract Long lasting business transactions spanning multiple enterprises
More informationCQRS and Event Sourcing for Java Developers Markus Eisele
CQRS and Event Sourcing for Java Developers Markus Eisele @myfear Agenda Classical architectures and modernization CRUD vs. CQRS A little example Wrapping it up Classical Architectures Application Server
More informationMiddleware Mediated Transactions & Conditional Messaging
Middleware Mediated Transactions & Conditional Messaging Expert Topic Report ECE1770 Spring 2003 Submitted by: Tim Chen John C Wu To: Prof Jacobsen Date: Apr 06, 2003 Electrical and Computer Engineering
More informationLarge-Scale Key-Value Stores Eventual Consistency Marco Serafini
Large-Scale Key-Value Stores Eventual Consistency Marco Serafini COMPSCI 590S Lecture 13 Goals of Key-Value Stores Export simple API put(key, value) get(key) Simpler and faster than a DBMS Less complexity,
More informationNotes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title
Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion
More informationProcess Choreographer: High-level architecture
IBM Software Group Process Choreographer: High-level architecture Birgit Duerrstein WebSphere Process Choreographer Development IBM Lab Boeblingen duerrstein@de.ibm.com 2004 IBM Corporation Agenda Business
More informationBatches and Commands. Overview CHAPTER
CHAPTER 4 This chapter provides an overview of batches and the commands contained in the batch. This chapter has the following sections: Overview, page 4-1 Batch Rules, page 4-2 Identifying a Batch, page
More informationMegastore: Providing Scalable, Highly Available Storage for Interactive Services & Spanner: Google s Globally- Distributed Database.
Megastore: Providing Scalable, Highly Available Storage for Interactive Services & Spanner: Google s Globally- Distributed Database. Presented by Kewei Li The Problem db nosql complex legacy tuning expensive
More informationLecture 6 Consistency and Replication
Lecture 6 Consistency and Replication Prof. Wilson Rivera University of Puerto Rico at Mayaguez Electrical and Computer Engineering Department Outline Data-centric consistency Client-centric consistency
More informationManaging Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup
Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting
More informationMICROSERVICES ORCHESTRATIONS WITH BPM. Dr. Marigianna Skouradaki
1 MICROSERVICES ORCHESTRATIONS WITH BPM Dr. Marigianna Skouradaki Microservices To BPM or not to BPM? 2 Source: https://goo.gl/yf951d Source: https://goo.gl/b9y6th Source: https://goo.gl/ypbrkz Source:
More informationChapter 25: Advanced Transaction Processing
Chapter 25: Advanced Transaction Processing Transaction-Processing Monitors Transactional Workflows High-Performance Transaction Systems Main memory databases Real-Time Transaction Systems Long-Duration
More informationDistributed Systems COMP 212. Revision 2 Othon Michail
Distributed Systems COMP 212 Revision 2 Othon Michail Synchronisation 2/55 How would Lamport s algorithm synchronise the clocks in the following scenario? 3/55 How would Lamport s algorithm synchronise
More informationComponent-Based Software Engineering. ECE493-Topic 5 Winter Lecture 26 Java Enterprise (Part D)
Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 26 Java Enterprise (Part D) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo J2EE Application
More informationWhich compute option is designed for the above scenario? A. OpenWhisk B. Containers C. Virtual Servers D. Cloud Foundry
1. A developer needs to create support for a workload that is stateless and short-living. The workload can be any one of the following: - API/microservice /web application implementation - Mobile backend
More informationToday: Distributed Middleware. Middleware
Today: Distributed Middleware Middleware concepts Case study: CORBA Lecture 24, page 1 Middleware Software layer between application and the OS Provides useful services to the application Abstracts out
More informationWeb Application Architectures
Web Application Architectures Internet Engineering Spring 2018 Bahador Bakhshi CE & IT Department, Amirkabir University of Technology Outline MVC Design Pattern Multilayer Design Microservices Architecture
More information02 - Distributed Systems
02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is
More informationCSE 486/586: Distributed Systems
CSE 486/586: Distributed Systems Concurrency Control (part 3) Ethan Blanton Department of Computer Science and Engineering University at Buffalo Lost Update Some transaction T1 runs interleaved with some
More informationTransactional Process
Transactional Process Construction Document Transactional Process 1 Table Of Contents Introduction To Transactions... 2 Process Model... 3 Booking Transactional Sub Process... 4 Report Expenses Sub Process...
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.
More informationCS435 Introduction to Big Data FALL 2018 Colorado State University. 11/7/2018 Week 12-B Sangmi Lee Pallickara. FAQs
11/7/2018 CS435 Introduction to Big Data - FALL 2018 W12.B.0.0 CS435 Introduction to Big Data 11/7/2018 CS435 Introduction to Big Data - FALL 2018 W12.B.1 FAQs Deadline of the Programming Assignment 3
More informationSoftware Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6
Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Some Terms: Architecture the manner in which the components of a computer
More informationLarge Systems: Design + Implementation: Communication Coordination Replication. Image (c) Facebook
Large Systems: Design + Implementation: Image (c) Facebook Communication Coordination Replication Credits Slides largely based on Distributed Systems, 3rd Edition Maarten van Steen Andrew S. Tanenbaum
More informationSENG3011 Implementation Workshop. More on REST services
SENG3011 Implementation Workshop More on REST services Outline Programmable Web Resource Oriented Architecture REST (video https://www.youtube.com/watch?v=7ycw25phnaa) ROA Properties Service interactions
More informationCompensations in Orchestration Languages
Compensations in Orchestration Languages Retry Limit Exceeded Notify Customer Invalid CC Booking Booking Book Flight Get Credit Card Information Cancel Flight Charge Credit Card Book Hotel Cancel Hotel
More informationAdvanced Databases Lecture 17- Distributed Databases (continued)
Advanced Databases Lecture 17- Distributed Databases (continued) Masood Niazi Torshiz Islamic Azad University- Mashhad Branch www.mniazi.ir Alternative Models of Transaction Processing Notion of a single
More informationBroker Clusters. Cluster Models
4 CHAPTER 4 Broker Clusters Cluster Models Message Queue supports the use of broker clusters: groups of brokers working together to provide message delivery services to clients. Clusters enable a Message
More informationAdapting JDT to the Cloud. Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM
Adapting JDT to the Cloud Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM Topics Background and motivation Adapting JDT code base to run in cloud Incorporating Java tooling in Web IDEs
More informationA Distributed System Case Study: Apache Kafka. High throughput messaging for diverse consumers
A Distributed System Case Study: Apache Kafka High throughput messaging for diverse consumers As always, this is not a tutorial Some of the concepts may no longer be part of the current system or implemented
More informationComplex event flows in distributed systems
Complex event flows in distributed systems @berndruecker With thoughts from http://flowing.io @berndruecker @martinschimak 3 common hypotheses I check today: # Events decrease coupling # Orchestration
More informationA can be implemented as a separate process to which transactions send lock and unlock requests The lock manager replies to a lock request by sending a lock grant messages (or a message asking the transaction
More informationToday CSCI Remote Method Invocation (RMI) Distributed Objects
Today CSCI 5105 Remote Method Invocation (RMI) Message-oriented communication Stream-oriented communication Instructor: Abhishek Chandra 2 Remote Method Invocation (RMI) RPCs applied to distributed objects
More informationCSC 261/461 Database Systems Lecture 20. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101
CSC 261/461 Database Systems Lecture 20 Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101 Announcements Project 1 Milestone 3: Due tonight Project 2 Part 2 (Optional): Due on: 04/08 Project 3
More informationArchitectural patterns and models for implementing CSPA
Architectural patterns and models for implementing CSPA Marco Silipo THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Application architecture Outline SOA concepts and
More informationTRN5515 Industrial-strength Microservice Architecture with Next-Generation Oracle Database
TRN5515 Industrial-strength Microservice Architecture with Next-Generation Oracle Database Wei Hu, Vice President of Development Anil Madan, Director of Development Dominic Giles, Master Product Manager
More informationSTARCOUNTER. Technical Overview
STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation
More informationFast Track to EJB 3.0 and the JPA Using JBoss
Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity
More informationMicrosoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV. Vjekoslav Babić, MVP
Microsoft Dynamics Road To Repeatability Technical Deep Dive Server Extensibility in Microsoft Dynamics NAV Vjekoslav Babić, MVP About the Presenter Vjekoslav Babić consultant, trainer, blogger, author
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.
More informationToday: Distributed Objects. Distributed Objects
Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.
More informationUnity and Interoperability Among Decentralized Systems. Chris Gebhardt. The InfoCentral Project
Unity and Interoperability Among Decentralized Systems Chris Gebhardt The InfoCentral Project https://infocentral.org Users, Devices, I/O Software Layer (dynamic, largely declarative) software components
More information02 - Distributed Systems
02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is
More informationDistributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi
1 Lecture Notes 1 Basic Concepts Anand Tripathi CSci 8980 Operating Systems Anand Tripathi CSci 8980 1 Distributed Systems A set of computers (hosts or nodes) connected through a communication network.
More informationDistributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs
1 Anand Tripathi CSci 8980 Operating Systems Lecture Notes 1 Basic Concepts Distributed Systems A set of computers (hosts or nodes) connected through a communication network. Nodes may have different speeds
More informationDistributed Transaction Management 2003
Distributed Transaction Management 2003 Jyrki Nummenmaa http://www.cs.uta.fi/~dtm jyrki@cs.uta.fi General information We will view this from the course web page. Motivation We will pick up some motivating
More information1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. ORACLE PRODUCT LOGO Oracle ADF Programming Best Practices Frank Nimphius Oracle Application Development Tools Product Management 2 Copyright
More informationChapter 2 Distributed Information Systems Architecture
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 2 Distributed Information Systems Architecture Chapter Outline
More informationMicroservices using Python and Oracle. Arup Nanda Longtime Oracle DBA And Explorer of New Things
Microservices using Python and Oracle Arup Nanda Longtime Oracle DBA And Explorer of New Things Agenda What s the problem we are trying to solve? How microservices solves the problem? How is it different
More informationCSE 530A ACID. Washington University Fall 2013
CSE 530A ACID Washington University Fall 2013 Concurrency Enterprise-scale DBMSs are designed to host multiple databases and handle multiple concurrent connections Transactions are designed to enable Data
More informationMarkLogic Server. Database Replication Guide. MarkLogic 6 September, Copyright 2012 MarkLogic Corporation. All rights reserved.
Database Replication Guide 1 MarkLogic 6 September, 2012 Last Revised: 6.0-1, September, 2012 Copyright 2012 MarkLogic Corporation. All rights reserved. Database Replication Guide 1.0 Database Replication
More informationCOURSE 9 DESIGN PATTERNS
COURSE 9 DESIGN PATTERNS CONTENT Applications split on levels J2EE Design Patterns APPLICATION SERVERS In the 90 s, systems should be client-server Today, enterprise applications use the multi-tier model
More informationHidden Gems in JD Edwards Orchestrator and AIS Server
Hidden Gems in JD Edwards Orchestrator and AIS Server Darryl Shakespeare Senior Director Product Development Oracle JD Edwards EnterpriseOne November 12-17, 2017 Safe Harbor Statement The following is
More informationMarkLogic Server. Database Replication Guide. MarkLogic 9 May, Copyright 2017 MarkLogic Corporation. All rights reserved.
Database Replication Guide 1 MarkLogic 9 May, 2017 Last Revised: 9.0-3, September, 2017 Copyright 2017 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Database Replication
More informationPolling Sucks. So what should we do instead?
Polling Sucks So what should we do instead? Should we use XMPP? What about AMQP? What about plain old HTTP push? Should it be peerto-peer? Intermediated? Disintermediated? 1 Messaging The answer is banal:
More informationMicroservices stress-free and without increased heart-attack risk
Microservices stress-free and without increased heart-attack risk Uwe Friedrichsen (codecentric AG) microxchg Berlin, 12. February 2015 @ufried Uwe Friedrichsen uwe.friedrichsen@codecentric.de http://slideshare.net/ufried
More informationCS /15/16. Paul Krzyzanowski 1. Question 1. Distributed Systems 2016 Exam 2 Review. Question 3. Question 2. Question 5.
Question 1 What makes a message unstable? How does an unstable message become stable? Distributed Systems 2016 Exam 2 Review Paul Krzyzanowski Rutgers University Fall 2016 In virtual sychrony, a message
More informationNext Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4
Color Spectrum: Next Paradigm for Decentralized Apps Table of Contents Table of Contents 1 Introduction 1 Color Spectrum Overview 3 Two-tier Architecture of Color Spectrum 4 Clouds in Color Spectrum 4
More informationEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges
More informationBRIT Systems. DICOM Conformance Statement
BRIT Systems DICOM Conformance Statement BRIT Scan Release 7.1 Document Number: DCS-BSN-007.1-0001 January 2007 Date Release Number DICOM Conformance Statement Revision History Revised By Sections Affected
More informationAG Mednet Agent DICOM Conformance Statement Version 1.3
AG Mednet Agent DICOM Conformance Statement Version 1.3 AG Mednet, Inc. Page 2 CONTENTS 1 INTRODUCTION...5 1.1 REVISION HISTORY...5 1.2 AUDIENCE...5 1.3 REMARKS...5 2 NETWORKING...7 2.1 IMPLEMENTATION
More informationDistributed Systems COMP 212. Lecture 15 Othon Michail
Distributed Systems COMP 212 Lecture 15 Othon Michail RPC/RMI vs Messaging RPC/RMI great in hiding communication in DSs But in some cases they are inappropriate What happens if we cannot assume that the
More informationDistributed PostgreSQL with YugaByte DB
Distributed PostgreSQL with YugaByte DB Karthik Ranganathan PostgresConf Silicon Valley Oct 16, 2018 1 CHECKOUT THIS REPO: github.com/yugabyte/yb-sql-workshop 2 About Us Founders Kannan Muthukkaruppan,
More informationCSE 530A. Non-Relational Databases. Washington University Fall 2013
CSE 530A Non-Relational Databases Washington University Fall 2013 NoSQL "NoSQL" was originally the name of a specific RDBMS project that did not use a SQL interface Was co-opted years later to refer to
More informationBuilding a Real-time Notification System
Building a Real-time Notification System September 2015, Geneva Author: Jorge Vicente Cantero Supervisor: Jiri Kuncar CERN openlab Summer Student Report 2015 Project Specification Configurable Notification
More informationA Reservation-Based Extended Transaction Protocol for Coordination of Web Services
A Reservation-Based Extended Transaction Protocol for Coordination of Web Services Wenbing Zhao Dept. of Electrical and Computer Engineering Cleveland State University Cleveland, OH 44115 wenbing@ieee.org
More informationReminder from last time
Concurrent systems Lecture 5: Concurrency without shared data, composite operations and transactions, and serialisability DrRobert N. M. Watson 1 Reminder from last time Liveness properties Deadlock (requirements;
More informationPatterns Architectural Styles Archetypes
Patterns Architectural Styles Archetypes Patterns The purpose of a pattern is to share a proven, widely applicable solution to a particular problem in a standard form that allows it to be easily reused.
More informationSoftware Design COSC 4353/6353 DR. RAJ SINGH
Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications
More informationDISTRIBUTED COMPUTER SYSTEMS
DISTRIBUTED COMPUTER SYSTEMS MESSAGE ORIENTED COMMUNICATIONS Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline Message Oriented Communication Sockets and Socket API
More informationFault tolerance with transactions: past, present and future. Dr Mark Little Technical Development Manager, Red Hat
Fault tolerance with transactions: past, present and future Dr Mark Little Technical Development Manager, Overview Fault tolerance Transaction fundamentals What is a transaction? ACID properties Distributed
More informationDeveloping Microsoft Azure Solutions: Course Agenda
Developing Microsoft Azure Solutions: 70-532 Course Agenda Module 1: Overview of the Microsoft Azure Platform Microsoft Azure provides a collection of services that you can use as building blocks for your
More informationTransaction service settings
Transaction service settings Use this page to specify settings for the transaction service. The transaction service is a server runtime component that can coordinate updates to multiple resource managers
More informationAPPROVER GUIDE. November Cloud Approval Workflows for Finance and Accounting
APPROVER GUIDE November 2017 Agenda Basic Setup Accept the invitation Change user name, contact details and notifications Reset password Set a Delegate Work in Progress Approver Request Lists Approval
More informationIntegrity in Distributed Databases
Integrity in Distributed Databases Andreas Farella Free University of Bozen-Bolzano Table of Contents 1 Introduction................................................... 3 2 Different aspects of integrity.....................................
More informationAsynchronous Web Services: From JAX-RPC to BPEL
Asynchronous Web Services: From JAX-RPC to BPEL Jonathan Maron Oracle Corporation Page Agenda Loose versus Tight Coupling Asynchronous Web Services Today Asynchronous Web Service Standards WS-Reliability/WS-ReliableMessaging
More informationCreating Workflows. Viewing the Task Library. Creating a Workflow. This chapter contains the following sections:
This chapter contains the following sections: Viewing the Task Library, page 1 Creating a Workflow, page 1 Example: Creating a Workflow, page 13 Resolving Workflow Validation Issues, page 16 Changing Flow
More informationAn Implementation of the OASIS Business Transaction Protocol on the CORBA Activity Service. By Adam D. Barker. MSc SDIA, September 2002
An Implementation of the OASIS Business Transaction Protocol on the CORBA Activity Service By Adam D. Barker MSc SDIA, September 2002 Supervisor: Dr. Mark Little 1 CONTENTS CONTENTS...3 TABLE OF FIGURES...6
More informationJava Concurrency in practice Chapter 9 GUI Applications
Java Concurrency in practice Chapter 9 GUI Applications INF329 Spring 2007 Presented by Stian and Eirik 1 Chapter 9 GUI Applications GUI applications have their own peculiar threading issues To maintain
More informationMicroservices with Kafka Ecosystem. Guido Schmutz
Microservices with Kafka Ecosystem Guido Schmutz @gschmutz doag2017 Guido Schmutz Working at Trivadis for more than 20 years Oracle ACE Director for Fusion Middleware and SOA Consultant, Trainer Software
More informationVCC Chat Feature Highlights
VCC 2.5.9 Chat Feature Highlights Agenda VCC Chat Channel Overview VCC Dashboard Chat Features Overview VCC Agent Desktop Chat Features Overview Managing the Channel Status Agent Status Monitoring for
More informationLab IV. Transaction Management. Database Laboratory
Lab IV Transaction Management Database Laboratory Objectives To work with transactions in ORACLE To study the properties of transactions in ORACLE Database integrity must be controlled when access operations
More informationDS 2009: middleware. David Evans
DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between
More informationCMPT 354: Database System I. Lecture 11. Transaction Management
CMPT 354: Database System I Lecture 11. Transaction Management 1 Why this lecture DB application developer What if crash occurs, power goes out, etc? Single user à Multiple users 2 Outline Transaction
More informationChapter 13: Architecture Patterns
Chapter 13: Architecture Patterns SAiP Chapter 13 J. Scott Hawker/R. Kuehl p. 1 Len Bass, Paul Clements, Rick Kazman, Topics What is a Pattern? Pattern Catalog Module patterns Component and Connector Patterns
More informationSCALE. A language for dynamic composition of heterogeneous services
A language for dynamic composition of heterogeneous services Contents 1 Introduction...4 1.1 Heterogeneous Service Landscape...5 1.2 Composition of heterogeneous services...7 2 Guiding Concepts and Central
More informationLong running and distributed transactions. TJTSE54 spring 2009 Ville Seppänen
Long running and distributed transactions TJTSE54 spring 2009 Ville Seppänen ville.seppanen@jyu.fi Forthcoming lecture dates? For the next two meetings, the course page says 21 th and 28 th which are Tuesdays.
More informationCOSC344 Database Theory and Applications. Lecture 21 Transactions
COSC344 Database Theory and Applications Lecture 21 Transactions - Overview This Lecture Transactions Source: Chapter 20 Next Lecture Concurrency control Source: Chapter 21 Lecture After Recovery Source:
More informationDistributed Systems. Day 13: Distributed Transaction. To Be or Not to Be Distributed.. Transactions
Distributed Systems Day 13: Distributed Transaction To Be or Not to Be Distributed.. Transactions Summary Background on Transactions ACID Semantics Distribute Transactions Terminology: Transaction manager,,
More information