I’m taking your assumption on Googles tech env. They have their own Auth system. If they would adopt Dgraph, I’d prefer to maintain the Auth System and have separate Dgraph Clusters environments. Again, my opinion.
Yes and not necessarily only when needed, the predicates will be atomized in relation to the tenants. So, if you have several hosts with single Alphas and healthy disks. Dgraph will balance all tenants.
When I say “Eggs in the same basket” I mean that I personally don’t like this concept of having a single Dgraph Cluster for all. And that includes Tenants. BUT, if you are a great Ninja in Dgraph’s deploying, and master it completely. You can handle a Tenancy context for sure. Dgraph engineers knows how to handle Tenants and every single issue related to that. If you are starting or low budget, I recommend a Cluster per service.
BUT, if you don’t have Google’s scale. Just use a single Cluster for 3 Services is fine.
Of course, Google would have the best engineers. If they wanna run a single Dgraph Cluster for 99999 services. I believe they would be pretty confident to do so.
And Also, Dgraph has the logic of being resistant to failure. Where other instances can take the place of those that have failed. To have this security, a large and well-managed cluster does the job. But on the Google scale I don’t know what it would be like.
Yep, And neither with Tenants.
BUT, you could potentially use GraphQL and Apollo Federation architecture. So you can “merge” several services in a single GraphQL server. That won’t work for DQL of course. But you can use Lambdas or custom DQL in the GraphQL Federation and all is good. But, more work to do.
I don’t believe that this is related at the Database level. This is application level.
I’m pretty sure Google uses a mix of different solutions and even different DBs. And they are merged via API. I never worked at Google, but when the company is too big, it gets hard to make the whole company follow always the same principles. Things start to become “silos” fast.
Why not a single service that takes care of profiles? Just add a reference to those other services. The RAW profile data could be in that Profile Service. I think that some companies like Stack Exchange does something like this.
If you don’t want to worry about Infrastructure and cluster administration. Go to Dgraph Cloud with Tenant. If your team is small and your budget is short. Evaluate going to the Cloud because you will have a team taking care of the Cluster. Think about the salary you would be paying someone to run the 24-hour Cluster to do the comparison. Or your own time, if you were the one who has to play everything. From project administration, coding, and database administration. You with little budget need to buy time. And put the project out there live.
More or less. I say this in case you still don’t know how to properly manage a Cluster. An error can be fatal(downtime). So having multiple clusters is better. Isolate the problem, but keep some things upright and secure.