La KCL (Kinesis Client Library) pide implementar una factory de Consumers, así se encarga ella misma de crear tantos workers como hagan falta según la carga. El Consumer tiene que implementar la interfaz IRecordProcessor la cual obliga a implementar tres métodos:
public void initialize(InitializationInput ii) Aquí se puede obtener el id del sharding entre otros datos
public void processRecords(ProcessRecordsInput pri) Aquí se obtine el conjunto de records del microbatch y se procesan. Desde aqui se podría pasar a Spark por ejemplo. IMPORTANTE: después de procesar el batch, hay que decirla a Kinesis que actualice el puntero: checkpoint(pri.getCheckpointer());
public void shutdown(ShutdownInput si) Aquí de momento sólo actualizo el puntero, pero además se podrían cerrar los archivos que estuvieran abiertos, etc