From 3457d482600c382fd739a7c5ef840a9c068413fb Mon Sep 17 00:00:00 2001 From: Thomas Arrow Date: Mon, 30 Sep 2024 13:14:56 +0100 Subject: [PATCH] Create multi-tenancy-vs-federation.md (#1792) * Create multi-tenancy-vs-federation.md Add a very high level doc about the difference between multi-tenancy and federation * Update multi-tenancy-vs-federation.md --- doc/multi-tenancy-vs-federation.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 doc/multi-tenancy-vs-federation.md diff --git a/doc/multi-tenancy-vs-federation.md b/doc/multi-tenancy-vs-federation.md new file mode 100644 index 000000000..f96e3e40b --- /dev/null +++ b/doc/multi-tenancy-vs-federation.md @@ -0,0 +1,14 @@ +Wikibase Cloud's uses a [Multitenancy](https://en.wikipedia.org/wiki/Multitenancy) approach to many of its services. + +This is done to keep the cost of running each individual Wikibase low. It also reduces the costs of managing the releases of new features. + +We use a single instance of Blazegraph for the Wikibase instances we manage. We use the namespace feature to provide segregation of the tenant's data at the database level. We have implemented a custom service to route queries to the correct namespace. We have implemented a customer updater pipeline to allow the queryservice to be updated efficiently. This multi-tenant model is not [federation](https://www.mediawiki.org/wiki/Wikibase/Federation). + +We do allow federated querying between Wikibase Cloud instances, federated querying to Wikidata and also federated querying to the same 3rd party endpoints that Wikidata allows. + +We use a single ElasticSearch cluster for all of our Wikibases. In the first half of 2024 moved the data for each Wikibase even closer together and placed them all in the same indices. This substantially reduced costs we were facing due to the overheads ElasticSearch has for each index. Sharing a single cluster or even a single index is not federation. + +Finally, relevant to the topic of federation we host wikibase.world. This is a community run project that describes itself as follows: +> _**[Wikibase World](https://wikibase.world/wiki/Item:Q3 "Item:Q3")**_ is a collaborative database of the Wikibase ecosystem, including individual Wikibase instances, itself running on Wikibase. + +This provides a space for people to map Wikibases together therefore making them more interoperable. This makes it easier for people to write federated queries.