DgraphノードはDgraphクラスタ内に、リーダーとフォロワという2つのロールを持つことができます。
リーダーDgraphノードは特定のDgraphデータベース(つまり、特定のデータ・セット)の更新を受け取り、これを処理します。他のどのDgraphノードもそのデータベースに対して書込み操作を実行することはできません。指定されたDgraphは複数のデータベースのリーダーとなることができます。リーダーDgraphはデータベースの最新バージョンに関する情報を生成し、特定のDgraphデータベースへのリクエストを処理する他のDgraphノードにその情報を伝播する責任を担います。
リーダーは、あるデータベースに対する最初の書込み操作(Studioからの変換など)が行われるときに、そのDgraphデータベースに対してDgraph Gatewayにより選出されます。その時点まで、そのデータベースはリーダーを持ちません。Dgraphデータベースにリーダーが指名されると、そのデータベースが稼働しているかぎりリーダーに留まります。
Dgraphリーダー・ノードは完全なまたは増分のデータベース更新を、管理更新または構成更新と同様に定期的に受信します。更新処理の後、ノードはデータの新バージョンを公開し、更新されたバージョンの使用開始を他のDgraphノードに通知します。
フォロワ・ノードは特定のDgraphデータベースのリーダーではないDgraphノードです。これらのノードはそのデータベースに対する読取り専用アクセス権を持ちます(データベースへの問合せは処理できるがデータベースへの書込みはできない)。
フォロワ・ノードは各データベースの特定のバージョンに対する問合せを処理します。データベースが更新されると、これらのノードはそのデータベースのリーダーDgraphから新しいバージョンを受信します。