When Sidekiq and the application run against a single Redis instance, they can exhaust available connections because they are unaware of each other's usage. Using a connection pool for both application and Sidekiq prevents running out of connections. Sidekiq exposes an interface (a block-based API) so code can call Redis safely within the pool.