TypicalBot

WebSocket Proxy

REST Proxy

Bot

Micro-Services

HTTP Server

Event Listeners

HTTP server is to receive events from any other process including REST/WS.

MESSAGE_CREATE

Command Handling

Slash Commands Support

Properties

guildOnly

dmOnly

REST will send and receive between bot and dashboard
Important for managing rate limits! Everything goes through 1 thing!

Dashboard

Receives payload and handles accordingly if from WS like MESSAGE_CREATE send to commandHandler

If from dashboard, maybe someone click setup or something to run a script on their server

Nick do we want slash commands through Gateway or Webhook(separate http server(SERVERLESS style)?)

Slash Commands Serverless

Analytics

Permission Levels

READY

Inhibitors

BAN_ADD

BAN_REMOVE

GUILD_CREATE

GUILD_REMOVE

INVITE_POSTED

MEMBER_ADDED

MEMBER_REMOVED

MEMBER_UPDATED

MESSAGE_DELETE

MESSAGE_DELETE_BULK

MESSAGE_REACITION_ADD

REACTION_REMOVE

MESSAGE_EDIT

Once only

Just log that its READY so we know its good when rebooting.

Receive events from bot and add to the analytics table

Keep it bottlenecked not to break the database.

Fetch Application details and set owner ids