The RecordSinkService interface was created as part of
NIFI-6780 in order to decouple the generation of status records (via QueryNiFiReportingTask for example) from the transport/format of an external system. Implementations such as SiteToSiteReportingRecordSink, DatabaseRecordSink, and KafkaRecordSink are already in NiFi.
This Jira proposes a generic PutRecord processor that consists of RecordReader and RecordSinkService controller services, for the purposes of sending the records of an incoming flow file to whatever RecordSinkService implementation is configured by the user. In general this might alleviate the need for "PutExternalSystemXRecord" processors such as PutDatabaseRecord, where a single processor type can be used to send records to any number of external systems for which a RecordSinkService has been implemented. It basically shifts the logic from the processor to the controller service, but if a RecordSinkServiceLookup is implemented, this could offer a more flexible approach to sending records to various systems with fewer components.