Skip to main content

Service clients

Java services call each other with Spring RestClient or HTTP exchange interfaces (AuthInternalClient, SocialInternalClient, and the feed set). shared-feign holds shared DTO types. New code should follow the existing HTTP interface in the service you are editing, not introduce a second client stack.

Rust uses splick-clients.

Conventions:

  • Base URL from env (*_SERVICE_BASE_URL), never a hardcoded host.
  • Internal calls send the internal API key.
  • Timeouts are finite. Feed and messaging set explicit client timeouts.
  • Map a downstream 4xx to a domain error. A 5xx or timeout on a critical read fails the request; on a side effect it is retried via outbox or inbox.