# Wait

### Overview

The **Wait Component** delays message processing for a specified time before forwarding the original message. This component allows controlled execution timing in workflows.

### Usage

This component waits for a defined interval or until a specified date and time before sending the message to the output port.

#### Input Ports

| Port | Description                       |
| ---- | --------------------------------- |
| `in` | Receives a message to be delayed. |

**Input Properties**

| Property   | Type     | Description                                                                                                                                                             |
| ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `interval` | `string` | Defines how long to wait before forwarding the message (e.g., `5m`, `2h`, `1d`). Units: `m` (minutes), `h` (hours), `d` (days), `w` (weeks), `M` (months), `y` (years). |
| `until`    | `string` | A specific date-time value to wait until before forwarding the message (ISO 8601 format).                                                                               |

#### Output Ports

| Port  | Description                               |
| ----- | ----------------------------------------- |
| `out` | Sends the message after the delay period. |

#### Processing Logic

1. **Receive Message**: Accepts input and determines wait time.
2. **Compute Delay**: Uses `interval` or `until` to schedule message forwarding.
3. **Hold Execution**: Waits for the specified time before processing.
4. **Send Message**: After the delay, the original message is forwarded.

### Notes

* **Flexible Delays**: Supports both relative time intervals and absolute date-time scheduling.
* **Accurate Timing**: Uses internal scheduling to ensure precise message delivery.
* **Workflow Control**: Useful for rate limiting, execution sequencing, and scheduled triggers.

This component is ideal for workflows that require delayed execution, sequential processing, or scheduling based on specific timing requirements.
