Components
View as MarkdownA Dex application runs on four components: your application, the server, the CLI, and Web. You write the application. Dex provides the rest.
| Component | What it does |
|---|---|
| Application | Your Workers and Clients. Workers host Flow definitions and run Steps and RPCs. Clients start Flows, call RPCs, and read Attributes. |
| Server | server-zd stores Flow state and hands work to Workers. |
| CLI | dexcli runs a local Dex and operates Flows from a shell. |
| Web | Dex Web is the operator UI for inspecting and acting on Flows. |
How they fit together
Client ──▶ server-zd ◀── Worker
Dex Web ──▶ │
dexcli ──▶ ├──▶ object storage
└──▶ PostgreSQL (Attribute Store 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. See Keep data after the Flow.
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, which has the configuration, limits, and version details.