Skip to main content

Pixwel Services

The following services are installed across all environments, and are responsible for background dispatch and delivery of event notifications over various channels. These workers use Amazon SQS to ensure that messages are delivered and processed atomically. In development and demo environments, ElasticMQ is used to provide an SQS-compatible API so that the same pattern can be used across all environments.
NameConfigDescription
pixwel-worker-notificationsecs-worker-notifications.service.ymlRuns worker-sqs --queue=$sqs_queue_notifications. Dispatches Notifications from Events, and pushes real-time messages to a Faye server.
pixwel-worker-emailsecs-worker-emails.service.ymlRuns worker-sqs --queue=$sqs_queue_emails. Pushes email messages to the EmailJobs digest spool.
pixwel-worker-send-emailsecs-worker-send-emails.service.ymlRuns send-emails. Flushes any pending email digests and sends them over SMTP.
Ingest is handled by slurpee — and the newer serverless slurpee3. See those pages for how ingest is deployed. There are also cron jobs which run certain li3 commands (e.g. checking embargos and KPIs).

Infrastructure

These workers run as their own AWS ECS (Fargate) services — one per ecs-worker-*.service.yml, deployed with fargate-deploy.sh. They sit apart from the web/API services and out of the load balancer pool: they only churn through notifications, emails, KPI gathering, and embargo checks, and don’t serve the user interface. That insulates users from high volumes of notifications.
Back to docs index | Next page in recommended reading order >>