System Design: Database Connection Pooling Best Practices