ADR-21: Update cycle of catalysts

More details about this document
Latest published version:
https://adr.decentraland.org/adr/ADR-21
Authors:
menduz
HPrivakos
Feedback:
GitHub decentraland/adr (pull requests, new issue, open issues)
Edit this documentation:
GitHub View commits View commits on githistory.xyz

Since catalyst servers are bound to a persistent volumes, a deployment schema where we delete the machine and create another (new) one is not a viable choice without downtime.

Instead, we will use the catalyst-owner/init.sh script to update the current version in every machine. To know where to update we will create two SNS topics that will be redirected to SQS queues (one for each deployment):

Every deployment will have a 1 minute crontab to pull messages of its own SQS

  1. Create an SNS topic to publish new versions of the catalysts

  2. In each catalyst deployment (EC2)

    1. create also an SQS

    2. subscribe that SQS to the SNS topic

    3. crontab to consume the SQS in each deployment

sequenceDiagram
  ci->>sns: new version published (using aws cli)
  sns->>sqs: aws.sns.TopicSubscription
  ec2->>ec2: cron (aws sqs receive-message)
  sqs-->>ec2: message
  ec2->>ec2: ./init.sh
  ec2-->>sqs: delete-message (if succeed)

Links

License

Copyright and related rights waived via CC0-1.0. DRAFT Stagnant