> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dcdeploy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workload Types

> DCDeploy supports multiple workload types to match the nature of your application or service. Choosing the right workload type ensures resources are allocated efficiently and scaling policies behave as expected.

## Available workload types

### 1. **Service**

* Long-running processes designed to handle network traffic (HTTP, gRPC, TCP, Websockets).
* Typically used for APIs, web apps, or microservices.
* Can be autoscaled based on **CPU, memory, or network RPS**.

**Example:**

<img height="200" src="https://mintcdn.com/dcdeploy-9454b28e/PPFDUcmrmPTTWKMC/docs/deploy/images/env-yml.png?fit=max&auto=format&n=PPFDUcmrmPTTWKMC&q=85&s=8400e58e4c546b1e70693ce62bbba438" data-path="docs/deploy/images/env-yml.png" />

***

### 2. **Database**

* Managed databases.
* Persistent storage enabled.
* Optimized for durability and stateful workloads.

**Example:**

<img height="200" src="https://mintcdn.com/dcdeploy-9454b28e/PPFDUcmrmPTTWKMC/docs/deploy/images/db-yml.png?fit=max&auto=format&n=PPFDUcmrmPTTWKMC&q=85&s=55d6b9274d779840e06fe93a9758ce62" data-path="docs/deploy/images/db-yml.png" />

### 3. **Worker**

* Worker is a special type of container designed to run indefinitely in the background without exposing any HTTP endpoints or acting as a web server.
* Unlike typical app containers that handle incoming requests, a worker is focused solely on executing background logic — continuously, or in response to internal events, queues, or schedules.

**Example**

***

## Choosing the right workload type

| Workload Type | Use Case                      |
| ------------- | ----------------------------- |
| **Service**   | Web apps, APIs, microservices |
| **Database**  | Stateful data storage         |
| **Worker**    | Job / Task runner             |

***

## Best practices

* Use **Services** for stateless traffic-handling apps.
* Run **Databases** only when you need custom DB setups (prefer managed DBs if available).
* Ensure **Workers** have retry logic and error handling.

***
