Message queue » History » Version 8
Peter Amstutz, 11/01/2017 08:29 PM
| 1 | 1 | Peter Amstutz | h1. Message queue |
|---|---|---|---|
| 2 | |||
| 3 | 7 | Peter Amstutz | Arvados desired capabilities for message queue: |
| 4 | |||
| 5 | * Support for WebSocket transport to enable use by browser |
||
| 6 | * Client support for languages used in Arvados (Go, Python, Ruby, Javascript) |
||
| 7 | * Can apply Arvados permission model |
||
| 8 | * Pub/sub of live change events on records |
||
| 9 | ** Transactional subscribe request that returns most recent record + subscribes to subsequent changes |
||
| 10 | * Pub/sub of live Container logs |
||
| 11 | ** Transactional subscribe request that returns recent recent log history + subscribes to subsequent logs |
||
| 12 | ** In-order delivery of logs |
||
| 13 | * Handle temporary disconnects |
||
| 14 | 8 | Peter Amstutz | * Easy to deploy (fits into our stack) |
| 15 | * Reasonable performance / resource usage |
||
| 16 | 7 | Peter Amstutz | |
| 17 | 1 | Peter Amstutz | Investigate WAMP: |
| 18 | |||
| 19 | http://wamp-proto.org/ |
||
| 20 | |||
| 21 | 2 | Peter Amstutz | It uses WebSockets as its principal transport, and has client library implementations for the languages we care about (Go, Python, Javascript) |
| 22 | 1 | Peter Amstutz | |
| 23 | https://github.com/gammazero/nexus |
||
| 24 | 2 | Peter Amstutz | |
| 25 | https://github.com/crossbario/autobahn-python |
||
| 26 | |||
| 27 | https://github.com/crossbario/autobahn-js |
||
| 28 | 1 | Peter Amstutz | |
| 29 | Probably what we want to do is run a "WAMP router" that sits in the middle of the log producers, the logging microservice, and log listeners (browser). |