Architecture

MinIO Sidekick operates as a sidecar process attached to client applications, providing client-side load balancing without requiring centralized infrastructure.

Sidecar model

MinIO Sidekick runs alongside each client application as a dedicated sidecar process. Client applications send requests to the local loadbalancer process, which forwards requests to healthy backend servers.

This architecture eliminates single points of failure and reduces network latency. Each client maintains its own view of backend health and makes independent routing decisions.

Request routing

When a client sends a request, Sidekick selects a healthy backend server using the configured load balancing algorithm. Sidekick forwards the request, streams the response back to the client, and tracks connection statistics. Failed requests trigger health checks to determine if a backend requires removal from the rotation.

Component structure

Sidekick manages three primary components: sites, backends, and health checkers. A site represents a logical grouping of backend servers, typically corresponding to a physical datacenter or availability zone. Each backend within a site represents a single server endpoint. Health checkers run in the background, monitoring each backend’s availability.

When all backends in a site become unhealthy, the load balancer automatically fails over to the next configured site. This provides geographic redundancy without requiring DNS changes or manual intervention.