The Domino platform runs or depends on the following software components.
The following primary application services run on platform nodes in the Domino Kubernetes cluster.
- NGINX
-
NGINX is an open-source HTTP and reverse proxy server. Domino uses NGINX to serve the Domino web application, and as a reverse proxy to route requests to internal services.
See NGINX for more information.
- Domino API server
-
The Domino application exposes the Domino API and handles REST API requests from the web application and user clients.
- Domino dispatcher
-
The Domino dispatcher orchestrates workloads on compute nodes. The dispatcher launches new compute pods, connects results telemetry back to the Domino application, and monitors the health of running workloads.
- Keycloak
-
Keycloak is an enterprise-grade, open-source authentication service. Domino uses Keycloak to store user identities and properties. It can also be used for identity brokering or identity federation to SSO systems and identity providers.
Keycloak supports the following protocols:
-
SAML v2.0
-
OpenID Connect v1.0
-
OAuth v2.0
-
LDAP(S) See Keycloak for more information.
-
Metadata, communication, and processing services run on platform nodes.
- MongoDB
-
MongoDB is an open-source document database. Domino uses MongoDB to store Domino entities, like projects, users, and organizations. Domino stores the structure of these entities in MongoDB, but underlying data is stored separately in encrypted blob storage.
See MongoDB for more information.
- Git
-
Git is a free and open-source distributed version control system. Domino uses Git internally to revision projects and files. Domino Executors also run Git clients, and they can interact with user-controlled external repositories to access code or data.
See Git for more information.
- Elasticsearch
-
Elasticsearch is a distributed, RESTful search and analytics engine. Domino uses Elasticsearch to power user searches for Domino objects like projects, files, and models. Domino also uses Elasticsearch for logging.
See Elasticsearch for more information.
- Docker registry
-
The Docker registry stores and distributes Docker images. Domino uses its registry to store images for Domino environments and Model APIs. These images are built to user specifications by compute nodes.
See Docker registry for more information.
- Fluentd
-
Fluentd is an open-source application that unifies and processes logging and telemetry data. Domino uses Fluentd to aggregate logs and forward data to durable storage.
See Fluentd for more information.
- Redis
-
Redis is an open-source data structure cache. Domino uses Redis to cache logs in-memory to stream back to users through the web application.
See Redis for more information.
- RabbitMQ
-
RabbitMQ is an open-source message broker. Domino uses RabbitMQ as an event bus to asynchronously distribute event messages between Domino services.
See RabbitMQ for more information.
- Postgres
-
Postgres is an open-source relational database system. Domino uses Postgres as a storage system for Keycloak data on user identities and attributes.
See Postgres for more information.