Skip to content

VSKI v0.6.7

Cron jobs are now properly disabled on replicas to prevent duplicate execution and data conflicts.

  • HTTP cron jobs: Always skipped on replicas (would cause duplicate external calls)
  • SQL cron jobs: Skipped for replicated databases (all databases except stats and workflows)
  • SQL cron jobs on non-replicated databases: Execute normally (e.g., cleanup jobs on stats or workflows)

This ensures that:

  1. Replicas don’t trigger duplicate HTTP webhooks
  2. SQL jobs don’t conflict with master’s data (replicated DBs are read-only)
  3. System maintenance jobs on non-replicated databases still run

Realtime and Webhooks Disabled on Replicas

Section titled “Realtime and Webhooks Disabled on Replicas”

On replica servers, the following are now disabled to prevent conflicts:

  • Realtime WebSocket: Connections are rejected with 503 status
  • Collection Webhooks: Trigger webhooks are not emitted on replicas

This ensures all events originate from the master server, preventing duplicate webhooks and maintaining data consistency.

For distributed realtime across multiple regions, see the Distributed Realtime Service documentation for implementing a Redis-backed realtime service.

  • internal/app/bootstrap.go - Configure cron replica mode, disable realtime/webhooks on replicas
  • internal/services/cron.go - Added replica mode support, skip jobs on replicated databases
  • internal/realtime/gateway.go - Added SetDisabled() method, reject WS connections when disabled
  • internal/services/webhooks.go - Added SetDisabled() method, skip triggers when disabled

None

No migration required.