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.