...
- Clowder can write messages directly to RabbitMQ
- Lightweight Flask API we run in a python container that also connects to RabbitMQ
- Other code can post datapoints to this API, that get forwarded to RabbitMQ
Flask API design notes - ideally these endpoints also match the calls on the new backend SinkService:
- Seems lightweight enough for possibly a single generic endpoint to enqueue an item
- Can expand to an endpoint-per-event-type as API evolves or as needs grow
- Use Swagger from the start, as best practice... should make it easier to alter/scale/sync API server/clients when necessary
- Requires authentication via API key or some other mechanism to prevent spam or potentially malicious fake messages
- Cannot fetch / auth using Clowder (since this is for handling the case when Clowder is down)
...