Synchronizers are the components of XOS that map the abstract declarative state about how the system is suppose to behave (as defined by the XOS data model) into the concrete operational state of the backend components that implement the system (e.g., VNFs, micro-services, SDN control applications).
Writing a Synchronizer is half of the work required to on-board a service into XOS. First a model for the service is written as an xproto specification, and then you implement a synchronizer that translates that model onto some backend component.
To implement a Synchronizer, it is important to first understand the role they play and the assumptions made about their behavior. The following three subsections address these issues. The first presents a set of design guidelines for how to write synchronizers, the second describes some of the implementation details about synchronizer internals, and the third gives a reference definition of the framework API for programming synchronizers. Developers that already understand the basics of synchronizers might want to jump to the third subsection for programming details.