Enveloppe de dispatch
Chaque trame Gateway possède un champ op. Les événements de dispatch transportent aussi d pour le payload et une séquence s croissante dans la session courante. Ne conservez la dernière séquence qu’après l’acceptation durable de l’événement par votre traitement.
json
{
"op": "MESSAGE_CREATE",
"s": 42,
"d": {
"id": "<message_id>",
"channel_id": "<channel_id>",
"content": "Hello"
}
}Familles d’événements courantes
| Famille | Exemples | Intent |
|---|---|---|
| Structure communautaire | GUILD_CREATE, GUILD_UPDATE, CHANNEL_CREATE, ROLE_UPDATE | GUILDS |
| Membres | GUILD_MEMBER_ADD, GUILD_MEMBER_UPDATE, GUILD_MEMBER_REMOVE | GUILD_MEMBERS |
| Messages | MESSAGE_CREATE, MESSAGE_UPDATE, MESSAGE_DELETE | GUILD_MESSAGES ou DIRECT_MESSAGES |
| Réactions | MESSAGE_REACTION_ADD, MESSAGE_REACTION_REMOVE | Intent de réaction correspondant |
| Interactions | INTERACTION_CREATE | GUILDS et installation de l’application |
| Présence et saisie | PRESENCE_UPDATE, TYPING_START | Intents explicites à volume élevé |
Sémantique de livraison
- Les dispatches sont ordonnés dans une même session active
- Une session reprise peut rejouer les trames suivant last_seq
- Le rejeu est limité en temps, nombre et octets ; INVALID_SESSION impose une réconciliation REST
- Les traitements doivent être idempotents par ID de ressource et séquence
- Les champs et noms d’événements inconnus doivent être ignorés
REST reste la source de vérité
Les événements Gateway signalent des changements, ils ne forment pas un journal permanent. Après expiration du rejeu, relisez la ressource concernée via REST avant de traiter les nouveaux événements.