This is a breakdown of how Dsync works and the specific requirements needed to handle real time synchronization between a connector and Dsync. The connector will act as a middleman between the system and Dsync while providing functionality to receive and send CRUD methods.
This document is intended reading for Technical Engineers, Software Developers and Technical project delivery teams who wish to build a custom platform’s connector which implements real-time bi-directional data exchange between the 3rd party platform and the DSYNC IPAAS system.
In it’s simplest form Dsync is a web based application that allows “systems to talk”; meaning the interchange of data between two or more systems. To achieve this functionality between systems that might have different variables or processes Dsync has to be setup to know how to exchange data and what data should be exchanged. What is typically needed and how it is setup within the Dsync Application are outlined in the following sections. For the simplicity of demonstrating the need for a connector, the diagrams displayed show the incoming and outgoing flow of data between two systems.
The system is a term used to describe an application, website or software package that stores and processes data. In Dsync it is an instance that can potentially accept incoming data from other systems and send data to other systems that have been set up within the Dsync environment. An example system would be a Magento instance running an online store.
The above diagram shows that data can flow from one system to another.
To create a system in the Dsync Application click on "+ SYSTEM" on the top right corner of the interface and click on "Select from templates" or "Add new blank":
If selecting from templates choose a template otherwise enter a name for the system and click “OK”:
The system should now be visible in the dashboard.
In Dsync, endpoints are specific entity locations within a system that can be setup to send, receive and convert entity data from one system to another. They can either be a source location (where the data originates from) or a destination location (where the data goes to). In terms of real-time synchronization, each entity endpoint relates to one entity in a system. They define an overall entity object but not the properties (fields) within that object. An example endpoint could be “Products” which could have both a source and a destination location on different systems.
The above diagram shows that a system can have specific entity endpoints that can send data from one system to another with similar endpoints.
As mentioned previously, the source endpoint is where specific entity data originates from. The endpoint allows a system to send specific source data to another system.
The destination endpoint is where specific entity data ends up. The endpoint allows a system to receive specific source entity data from another system.
Creating an Endpoint in Dsync
Once you have a system within the dashboard, click on the system and then “+ ADD ENDPOINT” from the right panel:
Enter a Name, Type and Connector Type and then click “SAVE”:
Once it is saved, it should be visible within the system.
The data layout is a defined set of properties for both source and destination endpoints. It is used as part of the process to map properties on different systems and is typically a field of an endpoint. An example field that could be in a data layout is “Product Name” on the “Products” endpoint.
The above diagram shows that each endpoint has a specific data layout which contains the properties of the endpoint.
Creating a Data Layout in Dsync
To create a data layout, select an endpoint from within the system on the dashboard and view right side panel and under the “DATA LAYOUT” header, click “NEW”:
Select the file format, and click “ADD FIELD” to add the fields you want on the data layout:
Once that is completed, click “SAVE SETTINGS” to save the data layout for that endpoint.
A relation is the relationship between endpoints (source and destination) on different systems. It uses calls from endpoints to send specific entity data from one system to another. It does not do anything until a map is created to link properties from one endpoint to another in the data layout.
The above diagram shows that there is a relation between the endpoints of two different systems.
A job consists of one or more relations. A job could be the connection between two system endpoints (one relation) or the connection between numerous system endpoints (collection of relations).
Creating a Relation in Dsync
In order to create a relation, make sure that there are at least two systems created (one with a source endpoint and one with a destination endpoint) and that a data layout is specified for each endpoint.
To check if there is one specified, select an endpoint from within the system on the dashboard and view right side panel:
If there is no data layout selected, select a pre-existing one or create a new one.
Once a data layout is selected, click “CREATE RELATION”. Once that is done, the endpoints that available to create a relation will be highlighted within a system:
Select the endpoint that you want to create the relation with and a dialog box will appear:
Add a name and click “OK” and the relation should be created:
Relation Mapping is the relationship between the properties of endpoint data layouts on different systems that are bound by a relation. Fields are mapped and then processed accordingly when a job is run.
The above diagram shows that the relation between endpoints has mapped properties from each data layout respectively.
Mapping a Field in Dsync
To map properties, select the far side of the relation line (the section that will end at the destination) and select a previous map or create a new one from the right side panel:
If creating a new map, enter a name for the map and click “SAVE”:
A list of fields will be listed from the destination endpoint data layout:
Click to add a field for the field that you want to map and a dialog will appear listing the source endpoint data layout fields:
Select the source endpoint field that you want to map and both fields will be displayed:
After all the fields that you want are mapped, save the mapping for this relation.