Mapping templates define the way your data is transformed from source to destination endpoint. DSYNC system comes with a set of predefined mapping templates which you can use. There are two types of mapping templates available in the system depending on the type of connection: bi-directional and one-way.
You can visibly distinguish between bi-directional and one-way job by looking at the connecting line between endpoints. One-way jobs have a set direction which is defined by little arrows along the connecting line. Bi-directional jobs have a little square on one side of the job which indicates a master endpoint.
Bi-directional jobs can work in one direction as well. You can set the direction on the job settings. Using the 'Direction' dropdown you can choose 'To Slave', 'To Master', or 'Both'.
One way mapping templates are simple source-to-destination maps and can be applied to any endpoint available in the system. When you create a link between two endpoints, DSYNC automatically recognizes the types of endpoints. If both endpoint you connect are capable of reading and writing data you get to choose the type of the job via the 'Select Job Type' dropdown. Connecting two endpoints where one of them is read or write only creates a one-way job by default.
Bi-directional maps are basically two maps in one. One map defines the source to destination direction (base map) and another map defines the way back (reverse map). Most of the predefined maps available in DSYNC are bi-directional maps however some of the maps do not have a reverse mapping defined due to the limited use cases.
For example when synchronizing inventory levels between your inventory management system and e-commerce website, the common use case is to do your stock take in the inventory management system which pushes updated stock levels to your e-store. Then a sales order is pushed back to your inventory system which deducts the stock level when the order is fulfilled. Having bi-directional synchronization of inventory levels leads to several issues; imagine taking stock in one system and adjusting stock level in another at the same time. Both systems trigger an update of inventory but which update is correct? You should always have a master for inventory where you do your stock take.
Good use case for bi-directional synchronization is an entity where you don't have to deal with count. You may want to keep your customers synchronized across all your systems for example.