Discord4J is a mature multi-module Java/Kotlin reactive client library for the Discord API, designed for building Discord bots rather than running as a standalone service. The codebase is organized into `common`, `rest`, `gateway`, `core`, `voice`, and `oauth2` modules. `rest` implements a bucket-aware HTTP client with retries, rate limiting, and response transformations; `gateway` handles the WebSocket lifecycle with sharding, resumption, intents, and event dispatch; `core` layers a typed entity/event model and fluent request specs on top; `voice` provides audio connections with encryption and DAVE protocol support; `oauth2` adds Discord login flows. Everything is built on Project Reactor and Reactor Netty, returning `Mono`/`Flux` throughout, giving the library a consistent non-blocking and composable architecture.