Real time syncing and offline capabilities using OpenUI5, JsonPatch, XMPP and xxHash

The OpenUI5 data model uses a node on an XMPP server to synchronize itself to different connected clients. Because of the usage of CRDT (Conflict-free replicated data type) it is easy to build offline capabilities on top of it.

The XMPP server requires the following:

PubSub Support (XEP-0060)

WebSocket (RFC 7395)

Anonymous access and node creation capabilities

In our developement we used ejabbered running on Ubuntu 16.04.

The communication with the client uses a WebSocket connection to the XMPP server but every other client can connect via normal sockets using port 5222.