Basic Concepts
About Ditto
ditto is an edge sync platform, orchestrating data flow between points a and b across diverse environments, including peer ‑ to ‑ peer, client ‑ server, 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 end ‑ user’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 platform, along with the standard terminology used throughout the documentation item component description 1 small peer your app logic integrated with the ditto sdk 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 /#big peer ) 3 authentication service the onlinewithauthentication api that you use to request your access credentials for peer ‑ to ‑ peer 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 w ith nearby devices to form a peer to peer mesh network through available transport protocols like bluetooth 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 peer ‑ to ‑ peer 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 peer ‑ to ‑ peer 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; h owever, under the rug , t he big peer functions as a centralized node in the kubernetes cluster 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 > docid 7w61tegftlq39qfc8dusj ) ingesting data from external systems into the ditto ecosystem (see big peer > docid\ ssoey7ucgtzab4tkg3dk3 ) extracting data from the transactional edge and streaming it to external systems, such as apache kafka, for comprehensive big data analytics (see big peer > docid\ huxeu9etfm7dqwjyjwmxt ) 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 you're ready to explore and test realtime sync capabilities without the commitment using either a demo app or your own development app (see docid\ b96xss8g9ixyedcjial7i and docid\ fpfwbcdcobbxiobmgctll ) you've integrated ditto, integrated a third‑party identity service provider, and are now ready to go into production (see docid\ fpfwbcdcobbxiobmgctll ) 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 > docid\ ssoey7ucgtzab4tkg3dk3 ) 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 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 > docid\ huxeu9etfm7dqwjyjwmxt )