I’m reaching out to seek some expert advice on implementing a multi-tenancy solution using Weaviate for an e-commerce platform we’re developing.
We’re considering two approaches for our data model, which includes Merchant and Product collections:
-
Implementing multi-tenancy for both Merchant and Product collections
-
Implementing multi-tenancy only for the Merchant collection, with a shared Product collection
To illustrate these options, I’ve created a simple diagram:
My current inclination is towards option 2, where only the Merchant collection is multi-tenant, and the Product collection is shared. This approach seems to offer better scalability and easier implementation of marketplace features, while still allowing for merchant-specific product associations through a merchantId
field. But my team is still a little bit concerned about products data isolation while keeping a effective, efficient search querying and management of products.
However, I wanted to get your thoughts on this approach:
-
What option would you recommend for my use case(marketplace/e-commerce platform)?
-
In your experience, what are the pros and cons of each approach in the context of an e-commerce platform?
-
Are there any specific Weaviate features or best practices you would recommend for implementing this kind of multi-tenancy model?
-
How would you advise handling access control and data isolation in a shared Product collection scenario?
Any insights or recommendations you could provide would be greatly appreciated.
Thank you for your time and expertise.