Analytics
Microservicio proxy que reenvía las conversiones a GA4, Meta, Google Ads y Customer.io. Consumidor puro: no publica eventos.
Overview
analytics es un microservicio FastAPI que actúa como proxy hacia las plataformas de
analytics y ads. Consume la conversión y la reenvía en paralelo a los providers habilitados.
No publica ningún evento.
Qué hace con cada evento
- 1
Valida el payload
Lo parsea contra un DTO de Pydantic (
domain/events/OrderCompleted.py). Si falla, loguea y descarta el mensaje. - 2
Filtra por canal
Descarta el evento si
channel != "web". Las órdenes corporativas, de biglife o de carga de stock no llegan a las plataformas de analytics. - 3
Deduplica
Por
dedup_key(purchase_{order_id}) contra Redis, para no contar dos veces la misma conversión. - 4
Fan-out a los providers
Envía en paralelo (
asyncio.gather) a GA4, Customer.io, Google Ads y Meta. Cada provider se puede apagar por flag de entorno.
Segunda vía de entrada: HTTP
El mismo handler está expuesto por POST /api/v1/events (src/application/api.py), que
acepta el mismo payload sin pasar por el bus. El contrato del evento es también el contrato
de ese endpoint: cualquier cambio de schema impacta en los dos.
Configuración del bus
Definida en src/application/dependencies.py:
| Parámetro | Valor |
|---|---|
service_name | analytics |
| Adapter | Google Cloud Pub/Sub |
| Schema registry | EventCatalog (EVENT_CATALOG_URL) |
Owner | Ecommerce <ecommerce@bigbox.com.ar> |
Versión de bigbox-event-bus | 1.1.10 |
| Subscription | event_bus_analytics_payments.order.completed.v1 |