Architecture
Hexagon under com.splick.messaging plus infrastructure/websocket and infrastructure/presence.
Controllers validate and map HTTP. Use cases own transactions and business rules. Domain types do not import Spring Data or HTTP clients. Infrastructure implements ports (JDBC, Redis, HTTP).
Use cases
SendMessageUseCaseGetOrCreateDirectConversationUseCaseCreateGroupConversationUseCaseTransferGroupAdminUseCasePublishTypingUseCaseBulkGetPresenceUseCaseSearchMessagesUseCaseSyncSocialGroupMembershipUseCase
Local run: ./gradlew run task for this service from splick-backend (see the service README and Makefile targets such as runAuth). The relay must be running before you expect downstream side effects.