> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ADR-013 — Pipeline de ingesta: fast-ack + cola + procesador idempotente

> POST /v1/core/track|identify|batch: autenticar → validar con Zod → rate limit en Upstash → encolar (QueuePort) → 202 con el id del evento. p95 bajo 100 ms.

Estado: Propuesto · Refs: DEC-D7, DEC-B8

> Traducción. Autoritativo: [`../../adr/adr-013-ingestion-pipeline.md`](/adr/adr-013-ingestion-pipeline).

## Decisión

`POST /v1/core/track|identify|batch`: autenticar → validar con Zod → rate limit en Upstash → encolar
(QueuePort) → 202 con el id del evento. p95 \<100 ms. El procesador (idempotente por `processed_jobs`
más la `idempotency_key` del evento): resolución y upsert de identidad → append en la
`core.tracked_events` particionada → evaluación incremental de segmentos → matching del motor de
reglas → efectos → outbox. Colocalización de la región de Vercel con la de Supabase; conexiones
pooled (modo transacción); atributos calientes promovidos a columnas; predicados de clave de
partición obligatorios.

## Consecuencias

* La latencia de ingesta es independiente del costo de procesamiento; contrapresión por profundidad
  de cola. − La lectura tras escritura es eventual (documentado: las respuestas de track son 202, no
  200\).
