From 16c20b1db7c58da64bb412de79bf14a71131cfe6 Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Fri, 6 Jun 2025 15:45:35 +1000 Subject: [PATCH] Add rate limit manager furps --- FURPS/application/rate_limit_manager.md | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 FURPS/application/rate_limit_manager.md diff --git a/FURPS/application/rate_limit_manager.md b/FURPS/application/rate_limit_manager.md new file mode 100644 index 0000000..ff8c61a --- /dev/null +++ b/FURPS/application/rate_limit_manager.md @@ -0,0 +1,35 @@ +# Rate Limit Manager FURPS + +## Functionality + +1. Rate limit the number of messages passed to the delivery service. +2. The rate limit is set in a form of number of messages per epoch; same format as RLN Relay. +3. Tracks current quota and usage. +4. Messages can be flagged with three priorities level: critical, normal, optional. +5. When remaining message quota is low, critical messages are sent, normal messages are queued and optional messages are dropped. +6. When message quote is exhausted, critical messages are queued on top, normal messages are queued, optional messages are dropped. + +## Usability + +1. Developer can mark messages with relevant priority. +2. Developer can pass messages by batch; with an all-or-none sending strategy. +3. Developer can access total quota and remaining quota values. +4. Message status is available to the developer (queued, dropped, passed to delivery service). + +## Reliability + +1. Errors and status from the underlying delivery service are available to the developer. +2. Queued messages are persisted across restart. +3. Quota status is persisted across restart. + +## Performance + +1. ... + +## Supportability + +1. ... + +## + (Privacy, Anonymity, Deployments) + +1. ... \ No newline at end of file