Paso de Transaction Stream
El TransactionStreamStep
es un componente fundamental en el pipeline de procesamiento de transacciones. Establece una conexión gRPC con el servicio TransactionStream
, obtiene transacciones en lotes, y las produce para procesamiento adicional. Este paso también gestiona reintentos de conexión y reconexiones en caso de fallas transitorias. Típicamente, este es el paso inicial en un procesador, responsable de hacer streaming de transacciones para pasos downstream.
Responsabilidades Clave
Sección titulada «Responsabilidades Clave»- Obtener Transacciones: Recupera lotes de transacciones de un servicio gRPC.
- Gestionar Conexiones: Maneja reconexiones gRPC para asegurar un stream resiliente.
- Proporcionar Metadatos: Adjunta información contextual como versiones y timestamps a las transacciones.
Definición de Struct
Sección titulada «Definición de Struct»El struct TransactionStreamStep
se define como sigue:
pub struct TransactionStreamStepwhere Self: Sized + Send + 'static,{ transaction_stream_config: TransactionStreamConfig, pub transaction_stream: Mutex<TransactionStreamInternal>,}
Cómo Funciona
Sección titulada «Cómo Funciona»- El
TransactionStreamStep
se conecta al servicio gRPCTransactionStream
. - Continuamente sondea para nuevas transacciones usando el método
poll
. - Cada lote se envuelve en un
TransactionContext
, que incluye metadatos como:- Versiones de inicio y fin.
- Timestamps de transacciones.
- Tamaño del lote en bytes.
- Si la conexión se interrumpe, intenta reconectarse sin problemas.