Saltearse al contenido

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.

  1. Obtener Transacciones: Recupera lotes de transacciones de un servicio gRPC.
  2. Gestionar Conexiones: Maneja reconexiones gRPC para asegurar un stream resiliente.
  3. Proporcionar Metadatos: Adjunta información contextual como versiones y timestamps a las transacciones.

El struct TransactionStreamStep se define como sigue:

pub struct TransactionStreamStep
where
Self: Sized + Send + 'static,
{
transaction_stream_config: TransactionStreamConfig,
pub transaction_stream: Mutex<TransactionStreamInternal>,
}
  • El TransactionStreamStep se conecta al servicio gRPC TransactionStream.
  • 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.