:linkattrs:
= Glossary

[[cluster]]
== Cluster
A Gerrit Cluster is a set of Gerrit processes sharing the same
link:config-gerrit.html#gerrit.serverId[ServerId] and associated to the same
set of repositories, accounts, and groups.

[[event]]
== Event

It refers to the link:https://gerrit.googlesource.com/gerrit/+/refs/heads/master/java/com/google/gerrit/server/events/Event.java[com.google.gerrit.server.events.Event]
base abstract class representing any possible action that is generated or
received in a Gerrit instance. Actions can be associated with change set status
updates, project creations, indexing of changes, etc.

[[event-broker]]
== Event broker

Distributes Gerrit Events to listeners if they are allowed to see them.

[[event-dispatcher]]
== Event dispatcher

Interface for posting events to the Gerrit event system. Implemented by default
by link:https://gerrit.googlesource.com/gerrit/+/refs/heads/master/java/com/google/gerrit/server/events/EventBroker.java[com.google.gerrit.server.events.EventBroker].
It can be implemented by plugins and allows to influence how events are managed.

[[event-hierarchy]]
== Event hierarchy

Hierarchy of events representing anything that can happen in Gerrit.

[[event-listener]]
== Event listener

API for listening to Gerrit events from plugins, without having any
visibility restrictions.

[[multi-primary]]
== Multi-primary
Multi-primary typically refers to configurations where multiple Gerrit primary
processes are running in one or more xref:cluster[clusters] together.

=== Single cluster multi-primary with shared storage
A variation of multi-primary (a.k.a. HA or high-availability) that shares a file
storage volume for the git repositories. These configurations can use the
link:https://gerrit.googlesource.com/plugins/high-availability[high-availability plugin]
to synchronize or share caches, indexes, events, and web sessions. The
replication plugin also
link:https://gerrit.googlesource.com/plugins/replication/+/refs/heads/master/src/main/resources/Documentation/config.md#configuring-cluster-replication[supports]
synchronizing events using a shared file storage volume.

[[multi-cluster-multi-primary]]
=== Multiple clusters multi-primary
Multi-cluster (aka multi-site) primaries typically refers to configurations
where multiple Gerrit primary processes are running in different (likely
geographically distributed) clusters (sites). This also typically makes use of
a multi-primary configuration within each cluster. Synchronization across sites
is necessary to detect and prevent split-brain scenarios. These configurations
can use the link:https://gerrit.googlesource.com/plugins/multi-site[multi-site plugin]
to facilitate synchronization.

[[primary]]
== Primary
A Gerrit primary is the link:pgm-daemon.html[main Gerrit process] permitting
write operations by clients. Most installations of Gerrit have only a single
Gerrit primary running at a time for their service.

[[replica]]
== Replica
A Gerrit process running with the link:pgm-daemon.html[--replica switch]
provided. This permits read-only git operations by clients. There is no REST
API, WebUI, or search operation available. Replicas can be run in
the same cluster with primaries (likely sharing the storage volume) or in other
clusters/sites (likely facilitated by the
link:https://gerrit.googlesource.com/plugins/replication[replication plugin]).

[[stream-events]]
== Stream events

Command that allows a user via CLI or a plugin to receive in a sequential way
some events that are generated in Gerrit. The consumption of the stream by default
is available via SSH connection.
However, plugins can provide an alternative implementation of the event
brokering by sending them over a reliable messaging queueing system (RabbitMQ)
or a pub-sub (Kafka).

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
