Containers
One PostgreSQL database (splick_db) with a schema per bounded context, plus schema kong for Kong's DB mode. PgBouncer sits in front of Postgres. Redis holds streams, presence, rate limits, and caches. Each Spring (or Rust) service is its own process.
The relay is not on the Kong graph. Messaging's WebSocket is on the messaging route with long read and write timeouts.
Java code is a Gradle modular monolith: many deployable services/* plus shared/* libraries. They are separate processes in Docker, not one JVM. That split is already past "one process", and the rule is still: extract a new network service only when the boundary and the ops cost are both real. See modular monolith.