Skip to main content
The application runs scheduled tasks via the NestJS CronModule. These jobs handle recurring maintenance, data sync, and analytics processing.

Scheduled Jobs

JobScheduleDescription
refresh-daily-email-metricsDailyAggregates email delivery metrics into ClickHouse
slt-recipient-reportPeriodicGenerates recipient reports
slt-unsub-exportPeriodicExports unsubscribe lists
elastic-searchPeriodicMaintains Elasticsearch customer index
ls-unsub-importPeriodicImports unsubscribe lists from external sources

Job Architecture

NestJS CronModule

    ├── @Cron() decorator → Scheduled execution

    ├── Use Case pattern → Business logic

    └── Logging via Pino → Monitoring

Email Metrics Aggregation

The refresh-daily-email-metrics job aggregates email delivery data:
EmailEventEntity (PostgreSQL)
    → Aggregate by day, sequence, brand
    → Write to ClickHouse analytics tables
    → Power reporting dashboards