Integrations with other Seed services

The Seed Stage-based Messaging Store currently integrates with three other Seed services.

Seed Scheduler

Outgoing integrations

New subscription

When a new Subscription object is created locally (via the API or the webhook endpoint) an async Celery task is queued to communicate to the Seed Scheduler to create a scheduled POST-back to the Stage-based Messaging Store endpoint (POST /subscriptions/(int:subscription_id)/send) on the given schedule in the subscription.

Updated subscription

When a Subscription object is updated locally there are two integrations to the Seed Scheduler than can occur:

  1. If the update is marking the Subscription as complete, an async Celery task is queued to communicate to the Seed Scheduler to deactive the scheduled POST-backs for this Subscription.
  2. If the update is marking the Subscription as inactive, an async Celery task is queued to communicate to the Seed Scheduler to deactive the scheduled POST-backs for this Subscription.

Incoming integrations

Once a schedule has been setup (see New subscription) in the Seed Scheduler for a Subscription, the Scheduler will call the (POST /subscriptions/(int:subscription_id)/send) endpoint on the setup schedule.

Seed Message Sender

Outgoing integrations

Message Sending

When the Subscription send endpoint ( POST /subscriptions/(int:subscription_id)/send) is called by the Scheduler an async Celery task is queued to process the Subscription.

During this process each message that needs to be sent will be queued by making a request to the Seed Message Sender with the relevant message and user details.

Project Hub

Incoming integrations

New registration

When a registration happens on the project hub it calls the POST /subscriptions/request endpoint with the subscription details to create a new Subscription for the user.