Class VeniceSystemProducer

java.lang.Object
com.linkedin.venice.samza.VeniceSystemProducer
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.samza.system.SystemProducer

public class VeniceSystemProducer extends Object implements org.apache.samza.system.SystemProducer, Closeable
VeniceSystemProducer defines the interfaces for Samza jobs to send data to Venice stores. Samza jobs talk to either parent or child controller depending on the aggregate mode config. The decision of which controller should be used is made in VeniceSystemFactory. The "Primary Controller" term is used to refer to whichever controller the Samza job should talk to. The primary controller should be: 1. The parent controller when the Venice system is deployed in a multi-colo mode and either: a. Version.PushType is PushType.BATCH or PushType.STREAM_REPROCESSING; or b. @deprecated Version.PushType is PushType.STREAM and the job is configured to write data in AGGREGATE mode 2. The child controller when either: a. The Venice system is deployed in a single-colo mode; or b. The Version.PushType is PushType.STREAM and the job is configured to write data in NON_AGGREGATE mode