Divide and Conquer: Customer-level Isolation as an Architectural Paradigm
Five years ago we decided to store each customer's data in a separate collection. While customer-level isolation might sound unnatural to multi-tenant SaaS like BigPanda, we thought it would be more secure, scalable, and manageable. At the time we weren't convinced that we'd made the right choice. As the product developed, however, we found it to be an invaluable design decision and adopted it throughout our system. In this presentation we'll share how customer-level isolation is implemented across our stack, the architectural impact and the business use cases it serves. We'll also talk about the challenges we encountered along the way, the solutions we found and some inevitable trade-offs.