GitHub

How we rebuilt the search architecture for high availability in GitHub Enterprise Server

Mar 3, 2026David Tippett
How we rebuilt the search architecture for high availability in GitHub Enterprise Server
SummaryAI, from the source post

This post details the transition from a clustered Elasticsearch setup to using Elasticsearch's Cross Cluster Replication (CCR) for High Availability (HA) GitHub Enterprise Server. It explains the previous challenges with clustered Elasticsearch, such as primary shard movement to replica nodes causing lock states, and the limitations of previous attempts at search mirroring. The new architecture utilizes independent single-node Elasticsearch clusters with CCR, allowing for controlled data replication of durably persisted data. A sample workflow for bootstrapping CCR, including attaching followers to existing indexes and setting up auto-follow policies, is provided. The post also outlines the necessary steps for administrators to adopt this new HA mode, including obtaining a license and configuring `ghe-config app.elasticsearch.ccr true`.

More from the High Availability Search Architecture for GitHub Enterprise Server trail