Flock is a machine and language agnostic framework that enables low-latency, highly available and eventually consistent event-driven messaging across web applications, Internet of Things (IoT) and embedded systems connected to internet. Flock packets are simple MessagePack objects signed with JSON Web Tokens (JWTs) using HS256 algorithm and compressed following GNU zip standard. These packets are exchanged across user applications by establishing interactive full-duplex communication called event channels.

The Flock framework initialises these event channels from the ground-up to support high availability and fault-tolerance using Erlang/Björn's Abstract Machine (BEAM) Supervisors and Flock algorithm. Flock algorithm is a variant of δ-CRDT's (Almeida et al., 2014) and heartbeat protocol (RFC 6520) (Tuexen et al., 2012) that causes a causally connected chain of supervised Erlang processes using dynamic content-based routing schemes. These processes are isomorphic to the queue of end-user events and ensures high availability and strong eventual consistency independent of the scale and complexity of a given application.