Skip to main content
Estado: Propuesto · Refs: D6, DEC-G5
Traducción. Autoritativo: ../../adr/adr-012-segment-dsl.md.

Decisión

DSL declarativo en JSON, versionado, deliberadamente restringido para que la evaluación incremental por evento sea posible: condiciones sobre atributos tipados del perfil · agregados de eventos con ventana (count, sum(propiedad), first_seen, last_seen sobre un nombre de evento en los últimos N días o todo el tiempo) · pertenencia a otros segmentos (acíclica) y a niveles · AND/OR/NOT. Cubre RFM (recency = last_seen, frequency = count, monetary = sum). Las plantillas RFM preconstruidas llegan por taxonomía vertical. La membresía se materializa en core.segment_members con historial entered_at/exited_at; los diffs emiten segment.entered|exited. Los segmentos cuyas condiciones no se pueden evaluar incrementalmente se marcan nightly_only al crearse — el constructor se lo dice al usuario. El recálculo completo por tenant corre al tier de frescura de datos (nocturno por defecto) como red de seguridad.

Consecuencias

  • Disparadores de segmento en tiempo real con cómputo acotado. − Techo de expresividad; extender el DSL es un cambio versionado explícito, nunca ad hoc.