> For the complete documentation index, see [llms.txt](https://sitecoreuml.gitbook.io/sitecoredxg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sitecoreuml.gitbook.io/sitecoredxg/architecture/components-overview.md).

# Components

A *component* is a modular program or service that is (primarily) independent of other programs or systems in/on which they are hosted, and satisfies the responsibilities of a SitecoreDXG *role*. By default, a fully-functional SitecoreDXG ecosystem includes the following components:

1. **SitecoreUML Service for Sitecore:** a service endpoint installed on a Sitecore application (PaaS or non-PaaS) as a Sitecore package that satisfies the *serializer* role
2. **SitecoreDXG Middleman:** a program that satisfies the *serializer* role - can be replaced with a own custom middleman implementation, though the **SitecoreDXG RabbitMQ Middleman** is included with SitecoreDXG for rapid setup and use
3. **SitecoreDXG Generation Service:** a node-based service (installable as a Windows service) that initializes and loads the *trigger* and *completion handler* plugins defined in the configuration, and satisfies the *generator* role by performing the generation when called

The following diagram depicts how these components communicate at a high-level:

![](/files/-LMm9Eup3wuWOzy_wnfM)
