# Features

Choose the feature your next operation needs. For a complete workflow, start with the [examples](/guide/examples).

| Feature | Use it to |
| --- | --- |
| [Validation and errors](/guide/features/validation-and-errors) | Reject bad input with Zod and return expected failures as Results |
| [Authentication and hooks](/guide/features/authentication-and-hooks) | Protect actions with JWT, enforce roles and run checks before or after an action |
| [Context and logging](/guide/features/context-and-logging) | Read shared resources, the current session and execution details, and write structured logs |
| [Queues, debounce and throttle](/guide/features/queues-debounce-throttle) | Limit concurrency, collapse repeated calls and cap how often work runs |
| [Telemetry](/guide/features/telemetry) | Send traces and metrics for actions to an OpenTelemetry collector |
| [WebSockets](/guide/features/websockets) | Publish typed topic messages to subscribers that pass your access policy |
| [Cron jobs](/guide/features/cron-jobs) | Run recurring business work on calendar, interval or one-time schedules |
| [Database models](/guide/features/database-models) | Create, read, update and delete rows through typed model helpers |
| [API discovery and schemas](/guide/features/api-discovery) | Let trusted tools list services and read action input schemas |
| [HTTP, WebSocket and direct calls](/guide/features/calling-actions) | Call the same action from HTTP, a socket client or your own backend code |
| [Retries and utilities](/guide/features/retries-and-utilities) | Retry external calls with jitter, store values briefly and wrap database failures |
| [Rate limiting](/guide/features/rate-limiting) | Bound how often a client can call an action or an HTTP route |
| [File uploads](/guide/features/file-uploads) | Accept multipart files with size, count and type limits |
| [Readiness and shutdown](/guide/features/readiness-and-shutdown) | Report readiness to a platform and stop new work before the process exits |
