About Ditto

Ditto is an edge-sync platform, orchestrating data flow between points A and B across diverse environments, including peertopeer, clientserver, and hybrid setups. 

Edge Sync

Edge sync refers to a paradigm where synchronization, or sync for short, happens at the network's outermost part — the edge — where end-user transactional data originates, is processed, and consumed.

This direct approach to data processing and communication within IT and business network architecture is decentralized; that is, it operates without a central authority and instead disperses sync-related tasks across multiple nodes at the edge.

Platform Components

The core product of our platform is a software developer kit (SDK) that you integrate into your app. Once integrated, each device running your app retains a single system database known as a Ditto store. The Ditto store operates locally within the enduser’s physical environment, such as an iPhone. 

Beyond being an SDK, our platform offers a suite of feature-rich tools and services to enhance data processing and communication capabilities in your end-user environment.

The following graphic and corresponding table provide a high-level overview of the Ditto Platform, along with the standard terminology used throughout the documentation:



Document image


Item

Component

Description

1

Small Peer

The Ditto SDK and local database running within the end-user environment, such as a web, mobile, or desktop app, or a Linux-enabled server system. (See Small Peers)

2

Big Peer

An optional cloud deployment feature that functions like any other peer within the decentralized network, but with elevated access permissions and advanced platform capabilities. (See Change Data Capture)

3

Authentication Service

The OnlineWithAuthentication API that you use to request your access credentials for peertopeer authentication. (See Authentication Service)

4

HTTP Data API

The API you can use to interact with the mesh-generated data stored in the Big Peer. (See HTTP Data API)

5

Change Data Capture (CDC)

The premium upgrade to implement realtime event streaming from Ditto to your third-party database and Apache Kafka topics. (See Change Data Capture)

Small Peers

A Small Peer refers to the combination of the Ditto SDK providing platform capabilities and its local database, or Ditto store, operating on the end-user device running your app.

Key Features

Here are a few attributes of a typical Small Peer to give you an idea:

  • Static and unchangeable storage, RAM, and CPU resources, for instance, an Apple iPhone 13 with a fixed storage capacity of 256 GB. 
  • Automatically connects with nearby devices to form a peer-to-peer mesh network through available transport protocols like Bluetooth Low Energy (LE).

Core Functions

Each Small Peer provides local data storage and data processing capabilities and establishes decentralized communication networks, referred to as the peer-to-peer mesh.

Big Peer

Alongside peertopeer transports like Bluetooth LE, you can incorporate either the Big Peer or your own on-premises server both easily configured with a URL within your peertopeer network.

The Big Peer is a platform feature you can opt into, adding to the capabilities of the Small Peer SDK.

Key Features

While the Small Peer SDK enables complex data connections within local areas, the optional Big Peer cloud deployment is where the transactional edge interfaces with Big Data analytics.

Following is a summary of Big-Peer feature offerings:

  • Implementing security protocols to enhance data and network security.
  • Providing advanced data processing capabilities.
  • Facilitating seamless integration with cloud services.
  • Handling large amounts of data through horizontal scaling and automatic critical scaling decisions.
  • Ensuring continuous uptime and availability.

Core Functions

The Big Peer operates within the peer-to-peer topology like any other peer participating in the mesh; however, under the rug, the Big Peer functions as a centralized system in the cloud.

Here are some primary functions of the Big Peer:

  • Facilitating sync between Small Peers in environments where direct communication is unreliable due to network limitations, security concerns, and other factors. (See Mesh Networking 101 > Flood-Fill Process)
  • Ingesting data from external systems into the Ditto ecosystem. (See Big Peer > HTTP API - Getting Started)
  • Extracting data from the transactional edge and streaming it to external systems, such as Apache Kafka, for comprehensive Big Data analytics. (See Big Peer > Change Data Capture)

Authentication Service

Ditto's security relies on digital identities for peer-to-peer authentication and access control permissions and privileges.

There are two available identity types to choose from:

Document image

1

Online Playground: For exploring and testing realtime sync capabilities without the commitment, using either a demo app or your own development app. (See 'Hello, World!' Sync Overview and OnlinePlayground Authentication)

2

OnlineWithAuthentication: For when you've integrated Ditto, integrated a third‑party identity service provider, and are now ready to go into production. (See OnlineWithAuthentication)

HTTP Data API

Ditto provides a stateless HTTP API that you can use to execute one-time operations on the Big Peer store for mesh-generated data ingress, reading, and manipulation.

The HTTP data API is structured on the remote procedure call (RPC) framework, so you can initiate requests as if you're making peer-to-peer local calls, even though the exchange happens over the internet. (See Big Peer > HTTP API - Getting Started)

Change Data Capture

The Big Peer is your gateway to the broader Ditto ecosystem for streaming and processing data in realtime with Apache Kafka.

Apache Kafka is a distributed streaming platform. For more information, see the official Kafka documentation.

CDC is a premium implementation for watching mesh data and, as relevant changes occur, asynchronously syncing with external databases and business intelligence tools.

Leveraging these change events, you can dynamically respond in realtime within your external systems and tools, for instance, update a dashboard to reflect the most up‑to‑date information from the Big Peer. (See Big Peer > Change Data Capture)