# Components of GAP

As stated before, GAP is a platform and not a monolithic piece of software. GAP interacts with different OSS/BSS
systems already present in GÉANT and these are tightly integrated with the automation platform.

From a high level point of view, GAP can be seen as the sum of the following parts:

- __A service database__ called CoreDB that stores the models of the service instances, called _subscriptions_.
Subscriptions are abstract objects that represent functional configuration constructs: the attributes that characterize
these objects are defined in the _domain models_.

- __An orchestration engine__ called Workflow Orchestrator that is capable of executing lists of steps called workflows.

- __A web interface__ for operators, called Orchestrator GUI to intuitively launch and inspect workflows.

- __An automation engine__, Ansible, capable of interacting with network devices to configure them or to gather
operational information.

- __A set of authoritative systems to manage resources__:
    - IP addresses and DNS names (Infoblox)
    - Physical interfaces (Netbox)

To interact with these external systems, specific plugins or wrappers are in place.

An overview of how these components interact is depicted in the following diagram:

![](../../assets/images/TNC23_diagrams-WFO_GAP.drawio.png){width=300}