Ditto Basics

As an edge sync platform, Ditto seamlessly shuttles data from points A to B in peertopeer, client-server, and hybrid environments. With Ditto, you get to choose the architecture that best meets your unique goals and use cases.

This Ditto Basics guide provides a high-level overview of fundamental concepts that, once understood, will empower you to get the most benefits of the Ditto platform.

Building Resilient Apps

The Ditto platform is a complex ecosystem consisting of many components that together form Ditto’s highly-available decentralized data management solution:

  • Ditto shuttles data from points A to B without the need for a centralized authority, such as a central server to validate and merge data changes.
  • If data inconsistencies occur as a result of concurrent edits; as in, simultaneous offline edits made to the same data items stored in different locations, those conflicts eventually merge as a single value. 

The following video narration provides a quick overview of how Ditto ensures data delivery from points A to B regardless of challenging network conditions:



Integrating Ditto and Managing Data

Ditto is an SDK library integrated with your app. Once integrated, each peer retains a single system database known as a Ditto store that operates locally within the end-user’s environment; for example, a physical device like an iPhone. 

The local Ditto store securely stores and processes transactional data as independent copies of the data, referred to as replicas. By maintaining multiple replicas of the same data across distributed peers, if one peer experiences connectivity issues or becomes unresponsive, your app remains fault-tolerant and optimized, ensuring a consistently smooth end-user experience.

Once internet connection is restored or a secure network becomes available, any offline changes automatically sync with the optional cloud deployment, referred to as the Big Peer, and even back to your centralized server — enterprise cloud, datacenter, legacy database, or business intelligence tool. (See Big Peer: An Optional, Yet Powerful Component)

Small Peer: Your App Integrated with Ditto

A Small Peer is an abstract term used in Ditto to refer to your app logic integrated with the Ditto SDK running in the end-user environment, such as a web, mobile, desktop, or Linux‑enabled server system. 

The defining attributes of Small Peers include:

  • Storage, RAM, and CPU resources are generally static and unchangeable. For example, a Small Peer could be an Apple iPhone 13 with a fixed storage capacity of 256 GB. 
  • Form an intelligent peer‑to-peer mesh network by automatically connecting with nearby peers through available transport protocols like Bluetooth Low Energy (LE). 

Entirely managed by Ditto, the mesh network that Small Peers establish enables the platform’s advanced peer‑to‑peer architectural configuration and seamless offline‑first capabilities. 

For more information, see any of the following:

Big Peer: A Powerful Component

The Big Peer is a cloud database deployment within the decentralized peer‑to‑peer network. That is, despite its role as a centralized node in the Kubernetes cluster, it seamlessly integrates with the network like any other connected peer, albeit with elevated access permissions. 

As the peer-to-peer network's cloud database deployment, the Big Peer is the platform component that enables client‑server and hybrid architectural environments, if you choose. 

The key features of the Big Peer include handling large amounts of data through horizontal scaling, ensuring continuous uptime operation and availability, fostering data and network security, and automatically managing critical scaling decisions. 

After undergoing rigorous performance testing to confirm its efficiency, scalability, and ability to handle a high volume of transactions, the Big Peer is proven to handle up to 40,000 transactions per second. This includes 25,000 write transactions and 15,000 read transactions. 

For more information, see any of the following:



Updated 11 Mar 2024
Did this page help you?