From e59374401653cf0ca037fe8b9772bd3b4864a204 Mon Sep 17 00:00:00 2001 From: Trey Pendragon Date: Wed, 29 Jan 2020 13:10:33 -0800 Subject: [PATCH] Add RabbitMQ ADR. --- .../0002-synchronization-via-rabbitmq.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 architecture-decisions/0002-synchronization-via-rabbitmq.md diff --git a/architecture-decisions/0002-synchronization-via-rabbitmq.md b/architecture-decisions/0002-synchronization-via-rabbitmq.md new file mode 100644 index 00000000..334f2eb1 --- /dev/null +++ b/architecture-decisions/0002-synchronization-via-rabbitmq.md @@ -0,0 +1,26 @@ +# 2. Synchronization via RabbitMQ + +Date: Archaeological + +## Status + +Accepted + +## Context + +We want Pomegranate to be a separate application from Figgy, but need some way +for Figgy to tell Pomegranate about new resources so that when something is +marked Complete in Figgy or taken down that it's reflected in Pomegranate. + +## Decision + +Figgy will send create/update/delete messages to a fanout RabbitMQ Exchange. +Pomegranate will register a durable queue which listens to that exchange and +process messages using [Sneakers](https://github.com/jondot/sneakers). + +## Consequences + +* If Sneakers workers stop processing, then new documents don't make it in to +Pomegranate and we have to perform a reindex. + +* We have to monitor the status of our queues to make sure things are working.