---
title: "Components"
description: "A Dex application runs on a small set of components. Your code is one of them."
canonical_url: "https://docs.superdurable.io/primitives/components/"
source: "docs/content/primitives/components/index.mdx"
locale: "en"
---

# Components

A Dex application runs on a small set of components. Your code is one of them.
Dex provides the rest.

| Component                                                                                                | What it does                                                                                                                         |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| [Application](https://docs.superdurable.io/primitives/components/application.md)                         | Your Workers and Clients. Workers host Flow definitions and run Steps and RPCs. Clients start Flows, call RPCs, and read Attributes. |
| [Server](https://docs.superdurable.io/primitives/components/server.md)                                   | server-zd stores Flow state and hands work to Workers.                                                                               |
| [CLI](https://docs.superdurable.io/primitives/components/cli.md)                                         | **dexcli** runs a local Dex and operates Flows from a shell.                                                                         |
| [Web](https://docs.superdurable.io/primitives/components/web.md)                                         | Dex Web is the operator UI for inspecting and acting on Flows.                                                                       |
| [Connector setup](https://docs.superdurable.io/primitives/components/connector.md)                       | Connectors are released integrations that a Flow calls. Dex Web sets them up locally.                                                |
| [External Attribute Sync](https://docs.superdurable.io/primitives/components/external-attribute-sync.md) | server-zd copies selected Attributes into PostgreSQL tables.                                                                         |

## How they fit together

```text
Client  ──▶ server-zd ◀── Worker
Dex Web ──▶     │
dexcli  ──▶     ├──▶ object storage
                └──▶ PostgreSQL (Attribute Sync)
```

Workers, Clients, Dex Web, and **dexcli** all connect to the server's API port.
A Worker opens outbound streams to the server and never listens for calls. The
server keeps Flow state in object storage. It can also write selected Attributes
to PostgreSQL for your own queries.

## Local and production

| Component   | Local development               | Production                                        |
| ----------- | ------------------------------- | ------------------------------------------------- |
| Server      | **dexcli dev** starts server-zd | **dex-server-zd serve** with object storage       |
| Web         | **dexcli dev** starts Dex Web   | A separate **dex-web** process, or **dexcli web** |
| Application | Your Worker process             | Your Worker service, scaled like any service      |

Each component page links to its [Developer Reference](https://docs.superdurable.io/reference.md), which has
the configuration, limits, and version details.
