If device capabilities support candidate datastore, then device configuration consists of 2 phases: 1) building configuration in candidate datastore; 2) committing configuration from candidate to running datastore. When using NetconfServiceProvider with CrudService, these 2 phases performed automatically one after another. But with NetconfService the user has full control of the phases, and can validate configuration before committing it to running datastore. Please check this documentation for details. Also you can find multiple examples in the unit test code.
Yan Gorelik
YDK Solutions