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-notifications/etc/init/pixwel-worker-notifications.confRuns worker-sqs --queue={{sqs_queue_notifications}}. Dispatches Notifications from Events, and pushes real-time messages to a Faye server.
pixwel-worker-emails/etc/init/pixwel-worker-emails.confRuns worker-sqs --queue={{sqs_queue_emails}}. Pushes email messages to the EmailJobs digest spool.
pixwel-worker-send-emails/etc/init/pixwel-worker-send-emails.confRuns send-emails. Flushes any pending email digests and sends them over SMTP.
The on-premises Ingest system known as slurpee is supervised either by Upstart (development/demo environments) or Launchd (staging/production):
NameConfigEnvironment
slurpee/etc/init/slurpee.confDevelopment, Demo
slurpee.staging/Library/LaunchDaemons/com.staging.slurpee.plistStaging
slurpee.production/Library/LaunchDaemons/com.pixwel.slurpee.plistProduction
There are also cron jobs which run certain li3 commands (e.g. checking embargos and KPIs). You can find these in api/cronjob.

Infrastructure

Services are installed on a separate cluster to the web workers. These nodes are not in the load balancer pool - they are only responsible for churning through notifications, emails, KPI gathering and embargo checks, and do not serve the user interface. This insulates the users from being affected by high volumes of notifications.
Back to docs index | Next page in recommended reading order >>