---
sidebar_label: Sample services
toc_max_heading_level: 3
doc_id: 09fcb187-75ac-4e87-9357-29f9899c42d8
description: >-
  Sample services nullplatform maintains as working examples, such as databases,
  queues, and storage, and how to adopt one in your organization.
keywords:
  - sample services
  - base services
  - service catalog
  - available services
  - adopt a service
  - service repositories
title: Sample services
canonical: 'https://docs.nullplatform.com/docs/services/sample-services'
---
# Sample services

Sample services are working examples that nullplatform maintains in public repositories. Each one ships its service
specification, workflows, and the OpenTofu code your agent runs to provision it, so you can adopt it as is or use it as
the starting point for your own. They are examples, not the limit of what you can run: any service you craft works the
same way.

## Samples

Each row is one service, as defined in the latest release of its repository:

- **Service**: the service's name. If the name doesn't say where the service runs, the platform appears in parentheses,
  such as _(AWS)_ or _(Kubernetes)_.
- **Slug**: the service's unique identifier. It stays the same even if the name changes.
- **Repository**: links to the folder with the service's code. Some repositories hold two related services, such as a
  database server and the databases that run on it.

| Service | Slug | Category | Subcategory | Repository |
| --- | --- | --- | --- | --- |
| AWS DocumentDB Cluster | `documentdb-cluster` | Database | Document Database | [services-document-db/documentdb-cluster](https://github.com/nullplatform/services-document-db/tree/v0.2.1/documentdb-cluster) |
| AWS DocumentDB Database | `documentdb-database` | Database | Document Database | [services-document-db/documentdb-database](https://github.com/nullplatform/services-document-db/tree/v0.2.1/documentdb-database) |
| AWS DynamoDB | `aws-dynamodb` | Database | NoSQL Database | [services-dynamo-db/dynamodb](https://github.com/nullplatform/services-dynamo-db/tree/v0.5.1/dynamodb) |
| Aurora PostgreSQL DB (AWS) | `aurora-postgres-db` | Database | Relational Database | [services-postgresql-aurora/aurora-postgres-db](https://github.com/nullplatform/services-postgresql-aurora/tree/v0.4.1/aurora-postgres-db) |
| Aurora PostgreSQL Server (AWS) | `aurora-postgres-server` | Database | Relational Database | [services-postgresql-aurora/aurora-postgres-server](https://github.com/nullplatform/services-postgresql-aurora/tree/v0.4.1/aurora-postgres-server) |
| Azure Cosmos DB | `azure-cosmos-db` | Database | NoSQL Database | [services-azure-cosmos-db/azure-cosmos-db](https://github.com/nullplatform/services-azure-cosmos-db/tree/v0.1.1/azure-cosmos-db) |
| Azure PostgreSQL Flexible Server | `azure-postgresql-flexible-server` | Database | Relational Database | [services-postgresql-flexible-server/postgresql-flexible-server](https://github.com/nullplatform/services-postgresql-flexible-server/tree/v1.1.2/postgresql-flexible-server) |
| Postgres DB (Kubernetes) | `postgres-db` | Database | Relational Database | [services-postgresql-k-8-s/postgres-db](https://github.com/nullplatform/services-postgresql-k-8-s/tree/v1.2.3/postgres-db) |
| RDS PostgreSQL (AWS) | `rds-postgres` | Database | Relational Database | [services-postgresql-rds/rds-postgres-server](https://github.com/nullplatform/services-postgresql-rds/tree/v0.6.1/rds-postgres-server) |
| RDS PostgreSQL DB (AWS) | `rds-postgres-db` | Database | Relational Database | [services-postgresql-rds/rds-postgres-db](https://github.com/nullplatform/services-postgresql-rds/tree/v0.6.1/rds-postgres-db) |
| RDS SQL Server (AWS) | `rds-sqlserver` | Database | Relational Database | [services-sqlserver-rds/rds-sqlserver-server](https://github.com/nullplatform/services-sqlserver-rds/tree/v0.3.0/rds-sqlserver-server) |
| RDS SQL Server DB (AWS) | `rds-sqlserver-db` | Database | Relational Database | [services-sqlserver-rds/rds-sqlserver-db](https://github.com/nullplatform/services-sqlserver-rds/tree/v0.3.0/rds-sqlserver-db) |
| Serverless Valkey (AWS) | `serverless-valkey` | Database | In-memory Cache | [services-valkey/valkey](https://github.com/nullplatform/services-valkey/tree/v0.6.1/valkey) |
| AWS SNS | `aws-sns` | Messaging | Pub/Sub | [services-aws-sns/sns](https://github.com/nullplatform/services-aws-sns/tree/v1.0.2/sns) |
| AWS SQS | `aws-sqs` | Messaging | Queue | [services-aws-sqs/sqs](https://github.com/nullplatform/services-aws-sqs/tree/v1.0.3/sqs) |
| Endpoint Exposer (Istio) | `http-route-access-control` | Networking | Endpoint Exposure | [services-endpoint-exposer](https://github.com/nullplatform/services-endpoint-exposer/tree/v1.0.3) |
| Path Router (Istio) | `path-router` | Networking | Path Routing | [services-path-router](https://github.com/nullplatform/services-path-router/tree/v0.4.0) |
| AWS S3 Bucket | `aws-s3-bucket` | Storage | Object Storage | [services-s-3/aws-s3-bucket](https://github.com/nullplatform/services-s-3/tree/v0.5.5/aws-s3-bucket) |
| Azure Blob Storage | `azure-blob-storage` | Storage | Object Storage | [services-blob-storage/azure-blob-storage](https://github.com/nullplatform/services-blob-storage/tree/v0.3.1/azure-blob-storage) |

Each repository has its own releases and changelog. A service that's no longer maintained stays listed, with
**Deprecated** at the start of its name.

## How adopting a sample service works

The repository's README has the exact steps and values for each service. The flow is the same for all of them:

1. **Grant the agent its cloud permissions.** Apply the requirements module in `<path>/specs/requirements/<cloud>`
   in your cloud account. It sets up the permissions your agent needs to provision the service.
2. **Register the service in nullplatform.** Use the `service_definition` and `service_definition_agent_association`
   modules from [tofu-modules](https://github.com/nullplatform/tofu-modules). The first one registers the service
   specification from the repository, and the second one routes the service's actions to your agents. Some
   repositories include a ready-to-apply module for this in `<path>/specs/install/<cloud>`.
3. **Complete the service's own prerequisites.** Some services need more before their first run, such as a state
   bucket, agent environment variables, or DNS records.

Once it's registered, developers create the service from the nullplatform UI and link it to their applications, like
any other service.

:::note
You need a running agent with a notification channel for your services before you adopt one. If you don't have it yet,
set it up first.
:::

## Next steps

- [Craft a service](/docs/services/craft-a-service/overview): build your own service or adapt a sample
- [Set up runners](/docs/services/set-up-runners): get an agent ready to provision services
- [Provisioning overview](/docs/services/provisioning): how nullplatform relays service actions to your agent
- [Manage and provision services](/docs/services/manage-services): create services and link them to applications
