You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue focuses on how we are approaching to implement the Discord service without affecting the current user flow and features. So, we will discuss everything from development to releasing & rollback strategies.
Tech Stack
Coding Language: GoLang
Queue: RabbitMQ
Containerisation: Docker Image
Deployment : ECS (Not Sure)
Developement
The Discord service is going to be developed in Golang. The idea is to divide the entire service into 2 parts, which are listed below.
A service that accepts requests from the outside world and then acts as a queue producer. It will be responsible for inserting tasks into the queue along with all the data required for consumption.
A consumer must be there which should keep on looking tasks from the queue and should work independently with the server as it only interacts with the queue.
Must Have
Name
Estimation (in hours)
Figure out max threshold of queue
3
List down all the tasks that currently discord-slash-command handles
4
Define Priority for each Task
2
Figure out how are we going to communicate among different services
4
List down API rate limits, globally and route specific
6
List out ways we can send alerts, if queue goes down, as discord bot has vast dependency
Currently, we are not managing API rate limits globally. As a result, our system may fail at any time, for example, if it takes on 2 tasks simultaneously. Therefore, as an end user, I need to ensure that the next set of tasks is delayed.
Expected Behavior
Expecting API rate limits to be implemented globally. Failure to do so may result in system failure, particularly if it handles multiple tasks simultaneously. Therefore, as an end user, I should not worry about API rate limits, our system should be smart enough to handle it on its own. Also it should always prioritise tasks with high priority over low priority tasks.
Severity/Priority
Critical
High
Medium
Low
Checklist
I have read and followed the project's code of conduct.
I have searched for similar issues before creating this one.
I have provided all the necessary information to understand and reproduce the issue.
I am willing to contribute to the resolution of this issue.
The text was updated successfully, but these errors were encountered:
I have gone through this issue; I just want to clarify: Will we deprecate discord-slash-commands after creating this?
No, discord-slash-command is going there as we need some service to let our bot interact with. It is just instead of other services (CRON, website-backend) telling discord-service what to do we will have a single service telling discord service what to do and when to do it (by making sure of API rate limiting)
Parent Issue
References
Issue Description
This issue focuses on how we are approaching to implement the Discord service without affecting the current user flow and features. So, we will discuss everything from development to releasing & rollback strategies.
Tech Stack
Developement
The Discord service is going to be developed in Golang. The idea is to divide the entire service into 2 parts, which are listed below.
Must Have
discord-slash-command
handlesPhase 1
discord-slash-command
handlesPhase 2 : 24 Sept
Phase 3 : 6 - 10 Oct
Good to have
Current Behavior
Currently, we are not managing API rate limits globally. As a result, our system may fail at any time, for example, if it takes on 2 tasks simultaneously. Therefore, as an end user, I need to ensure that the next set of tasks is delayed.
Expected Behavior
Expecting API rate limits to be implemented globally. Failure to do so may result in system failure, particularly if it handles multiple tasks simultaneously. Therefore, as an end user, I should not worry about API rate limits, our system should be smart enough to handle it on its own. Also it should always prioritise tasks with high priority over low priority tasks.
Severity/Priority
Checklist
The text was updated successfully, but these errors were encountered: