Design pattern for scalability