Consider removing the support of multiple versions architecture in Elasticsearch integration
GitLab uses Elasticsearch to provide Advanced Search feature. In the original design, it considered to support working with multiple versions of indices in order to achieve zero downtime migration. @lulalala has summarized the ideas in this MR, and also in this presentation(internal access only)
As the Elasticsearch integration evolved over the last year, we moved away from the original design on how to handle data migration when schema changes. First, we decided to utilize the Elasticsearch re-index API to achieve the goal. Later, we went further and implemented Background Migrations for Elasticsearch Indexing. One use case is that it helped move the issue data to its own index automatically.
While multiple versions architecture provides flexibility, it also adds complexity to the implementation. And also since we have adopted another route to solve the migration issue, we may want to remove the multiple versions logic to simplify the integration codebase.