SlideShare a Scribd company logo
XMPP Realtime Sync
The Problem
● I want to synchronize different datastores
CAP Theorem
● A distributed storage can only have 2 of the
following three properties:
– Consistency – a read will always respond with the
most current data
– Availability – a node will give a reasonable
response within a reasonable amount of time
– Partition tolerant – the system will still work when
nodes are not reachable
Proposed solution
● The proposed solution is AP and eventual
consitent
● This means:
– All nodes are always available and can work
without speaking to any other node
– When back connected to the network all nodes will
converge to have the same data
https://github.com/ManuelB/XMPPJSONPatchSyncModel
CRDT
● Conflict free replicated data type
● Data structures that don‘t produce conflicts
when merged
● e.g.
– State-based PN-Counter
– State based grow-only set
– last write wins element sets with vector clocks
– ...
XMPP PubSub XEP-0060
● Specification for distributing messages
● Publish-Subscribe paradigm
https://xmpp.org/extensions/xep-0060.html
<iq type='set'
from='hamlet@denmark.lit/blogbot'
to='pubsub.shakespeare.lit'
id='publish1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='princely_musings'>
<item id='bnd81g37d61f49fgn581'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<title>Soliloquy</title>
<summary>
To be, or not to be: that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
</summary>
<link rel='alternate' type='text/html'
href='http://denmark.lit/2003/12/13/atom03'/>
<id>tag:denmark.lit,2003:entry-32397</id>
<published>2003-12-13T18:30:02Z</published>
<updated>2003-12-13T18:30:02Z</updated>
</entry>
</item>
</publish>
</pubsub>
</iq>
Strophe
● XMPP Web Socket Library
● JavaScript
● Verschiedene Authorisierungen
● Callbacks um auf XMPP Nachrichten zu
antworten
● Logging
JSON Patch
● Specification for describing differences between
to JSON objects
● Used for describing the addition to the set
{
"op": add",
"path":"/inserts/62afb01a",
"value": {
"created":"2017-03-19T10:41:48.823Z",
"title":"Hello World"
}
}
xxHash
● Non cryptographic fast hashing algorithm
● Can be used for duplication detection
● Advantage:
– Data with same content won‘t duplicate in case of
data entry of different offline nodes
● Disadvantage
– Data without changing fields like timestamps or
UUIDs can be reentered once deleted
OpenUI5
● MVC JavaScript framework
● Basis for SAP Fiori
● Rich widget library
● Responsive
● Well integrated with server based on Models e.g.
– JSON
– OData
Demo
Questions?

More Related Content

PDF
Mysql connection
PPTX
Mule CacheScope
PDF
Introduction to Galera Cluster
PDF
How Prometheus Store the Data
PPT
what every web and app developer should know about multithreading
PDF
The post release technologies of Crysis 3 (Slides Only) - Stewart Needham
PDF
Optimizing Parallel Reduction in CUDA : NOTES
ODP
Hadoop admin
Mysql connection
Mule CacheScope
Introduction to Galera Cluster
How Prometheus Store the Data
what every web and app developer should know about multithreading
The post release technologies of Crysis 3 (Slides Only) - Stewart Needham
Optimizing Parallel Reduction in CUDA : NOTES
Hadoop admin

Similar to Using XMPP JSONPatch for synchronizing an OpenUI5 Model (20)

PDF
Introduction to apache kafka
PDF
Oracle to Postgres Migration - part 2
PDF
Hatohol technical-brief-20130830-hbstudy
PDF
Percona XtraDB 集群文档
PPT
Galera Cluster Best Practices for DBA's and DevOps Part 1
PDF
Clug 2012 March web server optimisation
PDF
Speedrunning the Open Street Map osm2pgsql Loader
PPTX
ODP
Using Galera Cluster to Power Geo-distributed Applications on the WAN
ODP
Introduciton to Apache Cassandra for Java Developers (JavaOne)
PPTX
Migrating to XtraDB Cluster
PDF
Cassandra 2012
PPTX
Introduction to SDshare
PDF
D itg-manual
PDF
Challenges with Gluster and Persistent Memory with Dan Lambright
PDF
Scaling Cassandra for Big Data
PDF
MongoDB Operational Best Practices (mongosf2012)
PPT
11g R2
PPTX
Build an affordable Cloud Stroage
PPTX
Ot performance webinar
Introduction to apache kafka
Oracle to Postgres Migration - part 2
Hatohol technical-brief-20130830-hbstudy
Percona XtraDB 集群文档
Galera Cluster Best Practices for DBA's and DevOps Part 1
Clug 2012 March web server optimisation
Speedrunning the Open Street Map osm2pgsql Loader
Using Galera Cluster to Power Geo-distributed Applications on the WAN
Introduciton to Apache Cassandra for Java Developers (JavaOne)
Migrating to XtraDB Cluster
Cassandra 2012
Introduction to SDshare
D itg-manual
Challenges with Gluster and Persistent Memory with Dan Lambright
Scaling Cassandra for Big Data
MongoDB Operational Best Practices (mongosf2012)
11g R2
Build an affordable Cloud Stroage
Ot performance webinar
Ad

More from Manuel Blechschmidt (16)

PDF
Optimizing an SAP Fiori Application Based on a Real World Example
PDF
Was macht ein Start Up erfolgreich?
PDF
Pick up women bigdata - CdE Pfingstakademie 2014
PDF
Obtaining Natural Language Descriptions of Process Specifications
PDF
Building a multi touch input device for NASA world wind
PDF
An architecture for evaluating recommender systems in real world scenarios
PDF
Studienberatung für IT Systems Engineering JGW Papenburg 2008
PDF
Qualitätsmanagement für Web- und PHP Applikationen
PDF
Collaboratives entwickeln in Bachelorprojekten
PDF
Using BPMN-Q to show violation of execution ordering compliance rules
PDF
Information Technology for Development Countries
PDF
Sub conf 2010
PDF
See through Augmented Reality
PDF
Zeitmanagement mit Zielen MHN Akademie 2008
PDF
Zeit- und Aufgabenmanagement im Leben Pfingstakademie 2008
PDF
BPEL Vortrag POIS 2007
Optimizing an SAP Fiori Application Based on a Real World Example
Was macht ein Start Up erfolgreich?
Pick up women bigdata - CdE Pfingstakademie 2014
Obtaining Natural Language Descriptions of Process Specifications
Building a multi touch input device for NASA world wind
An architecture for evaluating recommender systems in real world scenarios
Studienberatung für IT Systems Engineering JGW Papenburg 2008
Qualitätsmanagement für Web- und PHP Applikationen
Collaboratives entwickeln in Bachelorprojekten
Using BPMN-Q to show violation of execution ordering compliance rules
Information Technology for Development Countries
Sub conf 2010
See through Augmented Reality
Zeitmanagement mit Zielen MHN Akademie 2008
Zeit- und Aufgabenmanagement im Leben Pfingstakademie 2008
BPEL Vortrag POIS 2007
Ad

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Nekopoi APK 2025 free lastest update
PDF
medical staffing services at VALiNTRY
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
L1 - Introduction to python Backend.pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
ai tools demonstartion for schools and inter college
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
top salesforce developer skills in 2025.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
Digital Strategies for Manufacturing Companies
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
ManageIQ - Sprint 268 Review - Slide Deck
Nekopoi APK 2025 free lastest update
medical staffing services at VALiNTRY
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Wondershare Filmora 15 Crack With Activation Key [2025
How Creative Agencies Leverage Project Management Software.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
ISO 45001 Occupational Health and Safety Management System
L1 - Introduction to python Backend.pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
ai tools demonstartion for schools and inter college
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
top salesforce developer skills in 2025.pdf
Odoo Companies in India – Driving Business Transformation.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Odoo POS Development Services by CandidRoot Solutions
Navsoft: AI-Powered Business Solutions & Custom Software Development

Using XMPP JSONPatch for synchronizing an OpenUI5 Model

  • 2. The Problem ● I want to synchronize different datastores
  • 3. CAP Theorem ● A distributed storage can only have 2 of the following three properties: – Consistency – a read will always respond with the most current data – Availability – a node will give a reasonable response within a reasonable amount of time – Partition tolerant – the system will still work when nodes are not reachable
  • 4. Proposed solution ● The proposed solution is AP and eventual consitent ● This means: – All nodes are always available and can work without speaking to any other node – When back connected to the network all nodes will converge to have the same data
  • 6. CRDT ● Conflict free replicated data type ● Data structures that don‘t produce conflicts when merged ● e.g. – State-based PN-Counter – State based grow-only set – last write wins element sets with vector clocks – ...
  • 7. XMPP PubSub XEP-0060 ● Specification for distributing messages ● Publish-Subscribe paradigm https://xmpp.org/extensions/xep-0060.html <iq type='set' from='hamlet@denmark.lit/blogbot' to='pubsub.shakespeare.lit' id='publish1'> <pubsub xmlns='http://jabber.org/protocol/pubsub'> <publish node='princely_musings'> <item id='bnd81g37d61f49fgn581'> <entry xmlns='http://www.w3.org/2005/Atom'> <title>Soliloquy</title> <summary> To be, or not to be: that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? </summary> <link rel='alternate' type='text/html' href='http://denmark.lit/2003/12/13/atom03'/> <id>tag:denmark.lit,2003:entry-32397</id> <published>2003-12-13T18:30:02Z</published> <updated>2003-12-13T18:30:02Z</updated> </entry> </item> </publish> </pubsub> </iq>
  • 8. Strophe ● XMPP Web Socket Library ● JavaScript ● Verschiedene Authorisierungen ● Callbacks um auf XMPP Nachrichten zu antworten ● Logging
  • 9. JSON Patch ● Specification for describing differences between to JSON objects ● Used for describing the addition to the set { "op": add", "path":"/inserts/62afb01a", "value": { "created":"2017-03-19T10:41:48.823Z", "title":"Hello World" } }
  • 10. xxHash ● Non cryptographic fast hashing algorithm ● Can be used for duplication detection ● Advantage: – Data with same content won‘t duplicate in case of data entry of different offline nodes ● Disadvantage – Data without changing fields like timestamps or UUIDs can be reentered once deleted
  • 11. OpenUI5 ● MVC JavaScript framework ● Basis for SAP Fiori ● Rich widget library ● Responsive ● Well integrated with server based on Models e.g. – JSON – OData
  • 12. Demo