Pipelines de pedidos
Los pedidos fluyen a facturación, envíos y analítica, y cada uno lee el mismo stream a su propio ritmo.
Streams de eventos de solo anexado con grupos de consumidores, confirmaciones y recuperación automática de los mensajes que dejó un consumidor caído.
El servicio de pedidos añade un evento y recibe su id.
Un recorrido animado con comandos reales de HotKV y respuestas de ejemplo. Haz clic en cualquier paso para saltar a él. Los comandos y las respuestas se quedan en inglés, tal como los escribes y los ves en HotKV.
Los servicios que reaccionan a eventos necesitan algo más que una cola. Varios consumidores independientes quieren los mismos eventos, cada grupo de consumidores necesita repartir el trabajo entre instancias y, cuando una instancia muere con mensajes en la mano, alguien tiene que darse cuenta y hacerse cargo de ellos.
Un stream es un log de solo anexado. Cada grupo de consumidores lo lee de forma independiente, entrega cada mensaje a un miembro del grupo y lo mantiene pendiente hasta que el miembro lo confirma. XAUTOCLAIM pasa a un consumidor sano los mensajes que llevan demasiado tiempo pendientes.
El servicio de pedidos añade un evento y recibe su id.
XADD orders * type created order 1182 total 49.00Facturación y envíos tienen cada uno su propio grupo y cada uno recibe el evento.
XGROUP CREATE orders billing 0 MKSTREAMUna instancia de facturación lee los mensajes nuevos de su grupo y se bloquea hasta que llega algo.
XREADGROUP GROUP billing billing-1 COUNT 10 BLOCK 5000 STREAMS orders >Una vez creada la factura, facturación confirma y el mensaje sale de su lista de pendientes.
XACK orders billing 1790985600123-0Una instancia de envíos murió con mensajes en su poder. Tras 60 segundos inactivos, los reclama una instancia sana.
XAUTOCLAIM orders shipping shipping-2 60000 0-0 COUNT 25Los pedidos fluyen a facturación, envíos y analítica, y cada uno lee el mismo stream a su propio ritmo.
Las acciones de los usuarios se añaden a un stream y cualquier servicio que necesite el historial puede reproducirlas.
Los mensajes de los dispositivos se almacenan en streams y los procesa un grupo de workers que escala con la carga.
Las entradas reciben ids ordenados por tiempo y se pueden recortar por longitud o antigüedad.
XADDXTRIMCada grupo recibe todos los mensajes y reparte el trabajo entre sus miembros.
XGROUPXREADGROUPLos mensajes quedan pendientes hasta que se confirman.
XACKXPENDINGLos mensajes inactivos durante demasiado tiempo los reclama otro consumidor.
XAUTOCLAIMXCLAIMSí. XRANGE lee cualquier parte del stream por id, y un grupo de consumidores nuevo puede empezar desde el principio.
Recórtalo con XTRIM o con la opción MAXLEN o MINID de XADD.
XADD admite ids de productor idempotentes (IDMP), así que una publicación reintentada no crea una segunda entrada. Consulta la referencia de XADD.
HotKV habla el protocolo de Redis, así que puedes apuntar un cliente que ya usas hacia él y ejecutar estos mismos comandos.