The application i am working on require me to allow create multiple clients (tenants) each with their own set of users, equipments to rent out, bookings etc. This is a perfect case of multi tenancy. Reading through a lot over adopting to multi tenancy architecture (even on this very forum), i have decided to take an approach of having one database with clients collection, while other collection say booking added with client_id for the logical separation. I have to add client_id to all collections for mapping the relationship considering (from what i know or read so far) it is key to achieve multi tenancy.
I would like to get this approach validated by the experts in the forum and guide me on the right path and what more can be done (best practices) to make data separation easier and full proof, enhance scalability through shards (the tenants will grow in 1000s for sure), query performance, search etc.
Looking forward to hear from you.