mirror of
https://github.com/serai-dex/serai.git
synced 2024-12-23 12:09:37 +00:00
26 lines
1 KiB
Markdown
26 lines
1 KiB
Markdown
|
---
|
||
|
title: Message Queue
|
||
|
layout: default
|
||
|
nav_order: 1
|
||
|
parent: Infrastructure
|
||
|
---
|
||
|
|
||
|
The Message Queue is a microservice to authenticate and relay messages between
|
||
|
services. It offers just three functions:
|
||
|
|
||
|
1) Queue a message.
|
||
|
2) Receive the next message.
|
||
|
3) Acknowledge a message, removing it from the queue.
|
||
|
|
||
|
This ensures messages are delivered between services, with their order
|
||
|
preserved. This also ensures that if a service reboots while handling a message,
|
||
|
it'll still handle the message once rebooted (and the message will not be lost).
|
||
|
|
||
|
The Message Queue also aims to offer increased liveliness and performance.
|
||
|
If services directly communicated, the rate at which one service could operate
|
||
|
would always be bottlenecked by the service it communicates with. If the
|
||
|
receiving service ever went offline, the sending service wouldn't be able to
|
||
|
deliver messages until the receiver came back online, halting its own work. By
|
||
|
defining a dedicated microservice, with a lack of complex logic, it's much less
|
||
|
likely to go offline or suffer from degraded performance.
|