Skip to content

[Deliverable] Create Rate Limit Manager #319

@fryorcraken

Description

@fryorcraken

Owner: App/Chat Dev

Feature: Rate Limit Manager

FURPS:

  • F1. Rate limit the number of messages passed to the delivery service.

  • F2. The rate limit is set in a form of number of messages per epoch; same format as RLN Relay.

  • F3. Tracks current quota and usage.

  • F4. Messages can be flagged with three priorities level: critical, normal, optional.

  • F5. When remaining message quota is low, critical messages are sent, normal messages are queued and optional messages are dropped.

  • F6. When message quote is exhausted, critical messages are queued on top, normal messages are queued, optional messages are dropped.

  • U1. Developer can mark messages with relevant priority.

  • U2. Developer can pass messages by batch; with an all-or-none sending strategy.

  • U3. Developer can access total quota and remaining quota values.

  • U4. Message status is available to the developer (queued, dropped, passed to delivery service).

  • R1. Errors and status from the underlying delivery service are available to the developer.

  • R2. Queued messages are persisted across restart.

  • R3. Quota status is persisted across restart.

  • S1. Nim library.

  • +1. Nimble package manager is used to build.

Checklist:

Tasks

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions