Skip to content

Commit

Permalink
update to just scheduler; add to preview features
Browse files Browse the repository at this point in the history
Signed-off-by: Hannah Hunter <[email protected]>
  • Loading branch information
hhunter-ms committed May 29, 2024
1 parent 21ebbb1 commit 7d9bbec
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 31 deletions.
2 changes: 1 addition & 1 deletion daprdocs/content/en/concepts/building-blocks-concept.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ Dapr provides the following building blocks:
| [**Distributed lock**]({{< ref "distributed-lock-api-overview.md" >}}) | `/v1.0-alpha1/lock` | The distributed lock API enables you to take a lock on a resource so that multiple instances of an application can access the resource without conflicts and provide consistency guarantees.
| [**Workflows**]({{< ref "workflow-overview.md" >}}) | `/v1.0-beta1/workflow` | The Workflow API enables you to define long running, persistent processes or data flows that span multiple microservices using Dapr workflows or workflow components. The Workflow API can be combined with other Dapr API building blocks. For example, a workflow can call another service with service invocation or retrieve secrets, providing flexibility and portability.
| [**Cryptography**]({{< ref "cryptography-overview.md" >}}) | `/v1.0-alpha1/crypto` | The Cryptography API enables you to perform cryptographic operations, such as encrypting and decrypting messages, without exposing keys to your application.
| [**Distributed Scheduler**]({{< ref "cryptography-overview.md" >}}) | `/v1.0-alpha1/scheduler` | The Scheduler API enables you to schedule and orchestrate jobs at scale in your distributed environment.
| [**Scheduler**]({{< ref "scheduler-overview.md" >}}) | `/v1.0-alpha1/scheduler` | The Scheduler API enables you to schedule and orchestrate jobs at scale in your distributed environment.
6 changes: 3 additions & 3 deletions daprdocs/content/en/concepts/dapr-services/scheduler.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
type: docs
title: "Dapr Distributed Scheduler control plane service overview"
linkTitle: "Distributed Scheduler"
description: "Overview of the Dapr distributed scheduler process"
title: "Dapr Scheduler control plane service overview"
linkTitle: "Scheduler"
description: "Overview of the Dapr scheduler process"
---

Need.
2 changes: 1 addition & 1 deletion daprdocs/content/en/concepts/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Each of these building block APIs is independent, meaning that you can use any n
| [**Distributed lock**]({{< ref "distributed-lock-api-overview.md" >}}) | The distributed lock API enables your application to acquire a lock for any resource that gives it exclusive access until either the lock is released by the application, or a lease timeout occurs.
| [**Workflows**]({{< ref "workflow-overview.md" >}}) | The workflow API can be combined with other Dapr building blocks to define long running, persistent processes or data flows that span multiple microservices using Dapr workflows or workflow components.
| [**Cryptography**]({{< ref "cryptography-overview.md" >}}) | The cryptography API provides an abstraction layer on top of security infrastructure such as key vaults. It contains APIs that allow you to perform cryptographic operations, such as encrypting and decrypting messages, without exposing keys to your applications.
| [**Distributed Scheduler**]({{< ref "distributed-scheduler-overview.md" >}}) | The distributed scheduler API is a scalable way to schedule and orchestrate jobs across a distributed computing environment at specific times or intervals.
| [**Scheduler**]({{< ref "scheduler-overview.md" >}}) | The scheduler API is a scalable way to schedule and orchestrate jobs across a distributed computing environment at specific times or intervals.

### Cross-cutting APIs

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
type: docs
title: "Distributed Scheduler"
linkTitle: "Distributed Scheduler"
title: "Scheduler"
linkTitle: "Scheduler"
weight: 120
description: "Manage the scheduling and orchestration of jobs across distributed computing environments"
---
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ type: docs
title: "How-To: Set up a scheduler"
linkTitle: "How-To: Set up a scheduler"
weight: 2000
description: "Learn how to use the distributed scheduler API to schedule jobs"
description: "Learn how to use the scheduler API to schedule jobs"
---

<!-- Introductory paragraph
Expand Down
Original file line number Diff line number Diff line change
@@ -1,63 +1,59 @@
---
type: docs
title: "Distributed Scheduler overview"
title: "Scheduler overview"
linkTitle: "Overview"
weight: 1000
description: "Overview of the distributed scheduler API building block"
description: "Overview of the scheduler API building block"
---

The Distributed Scheduler API works as an orchestrator for scheduling jobs in the future, either at a specific time or a specific interval. The scheduler helps you with jobs like:
The Scheduler API works as an orchestrator for scheduling jobs in the future, either at a specific time or a specific interval. The scheduler helps you with jobs like:

- Scalable actor reminders
- Scheduling any Dapr API to run at specific times or intervals, like when:
- Sending pub/sub messages
- Calling service invocations and input bindings
- Saving state to a state store

The Distributed Scheduler consists of two parts that work together to seamlessly schedule jobs across all of Dapr's API building blocks:
- The Distributed Scheduler building block
- [The Distributed Scheduler control plane service]({{< ref scheduler.md >}})
The Scheduler consists of two parts that work together to seamlessly schedule jobs across all of Dapr's API building blocks:
- The Scheduler building block
- [The Scheduler control plane service]({{< ref scheduler.md >}})

This article covers the Distributed Scheduler API building block.
This article covers the Scheduler API building block.

## How it works

The Scheduler building block is a job orchestrator, not executor. The design guarantees *at least once* job execution with a bias towards durability and horizontal scaling over precision. This means:
- **Guaranteed:** A job is never invoked *before* the schedule is due.
- **Not guaranteed:** A ceiling time on when the job is invoked *after* the due time is reached.

<!--
Include a diagram or image, if possible.
-->

## Features

### Delayed pub/sub

The Distributed Scheduler building block enables you to delay your pub/sub messaging. You can publish a message in a future specific time -- for example, a week from today, or a specific UTC date/time.
The Scheduler building block enables you to delay your pub/sub messaging. You can publish a message in a future specific time -- for example, a week from today, or a specific UTC date/time.

### Scheduled service invocation

The Distributed Scheduler building block provides the [service invocation]({{< ref service-invocation-overview.md >}}) building block with an orchestrator that schedules method calls between applications.
The Scheduler building block provides the [service invocation]({{< ref service-invocation-overview.md >}}) building block with an orchestrator that schedules method calls between applications.

### Schedule jobs across multiple replicas

The Scheduler service enables the scheduling of jobs to scale across multiple replicas, while guaranteeing that a job is only triggered by 1 scheduler service instance.

### Actor reminders
### Scheduler reminders

The [Dapr Workflow building block]({{< ref workflow-overview.md >}}) is built on top of Actor Reminders. The Distributed Scheduler building block improves the performance and scale of actor reminders, which present scale limitation issues.
The [Dapr Workflow building block]({{< ref workflow-overview.md >}}) is built on top of Actor Reminders. The Scheduler building block improves the performance and scale of actor reminders, which present scale limitation issues.

### Store job details separately from user-associated data

If a user would like to store their user associated data in a specific state store of their choosing, then they can provision a state store using the Dapr State Management Building Block and set `jobStateStore ` as `true` in the state store component’s metadata section. Having the `jobStateStore` set to `true` means that their user associate data will be stored in the state store of their choosing, but their job details will still be stored in the embedded etcd. If the `jobStateStore` is not configured, then the embedded etcd will be used to store both the job details and the user associated data.

## Try out the Distributed Scheduler
## Try out the Scheduler

You can try out the Distributed Scheduler building block directly in your application. After [Dapr is installed]({{< ref install-dapr-cli.md >}}), you can begin using the Distributed Scheduler API, starting with [the How-to: Set up a Scheduler guide]({{< ref howto-use-scheduler.md >}}).
You can try out the Scheduler building block directly in your application. After [Dapr is installed]({{< ref install-dapr-cli.md >}}), you can begin using the Scheduler API, starting with [the How-to: Set up a Scheduler guide]({{< ref howto-use-scheduler.md >}}).

## Next steps

- [Learn how to use the distributed scheduler in your environment]({{< ref howto-use-scheduler.md >}})
- [Learn how to use the scheduler in your environment]({{< ref howto-use-scheduler.md >}})
- [Learn more about the Scheduler control plane service]({{< ref scheduler.md >}})
- [Distributed Scheduler API reference]({{< ref scheduler_api.md >}})
- [Scheduler API reference]({{< ref scheduler_api.md >}})
2 changes: 1 addition & 1 deletion daprdocs/content/en/operations/support/alpha-beta-apis.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ description: "List of current alpha and beta APIs"
| Bulk Publish | [Bulk publish proto](https://github.com/dapr/dapr/blob/5aba3c9aa4ea9b3f388df125f9c66495b43c5c9e/dapr/proto/runtime/v1/dapr.proto#L59) | `v1.0-alpha1/publish/bulk` | The bulk publish API allows you to publish multiple messages to a topic in a single request. | [Bulk Publish and Subscribe API]({{< ref "pubsub-bulk.md" >}}) | v1.10 |
| Bulk Subscribe | [Bulk subscribe proto](https://github.com/dapr/dapr/blob/5aba3c9aa4ea9b3f388df125f9c66495b43c5c9e/dapr/proto/runtime/v1/appcallback.proto#L57) | N/A | The bulk subscribe application callback receives multiple messages from a topic in a single call. | [Bulk Publish and Subscribe API]({{< ref "pubsub-bulk.md" >}}) | v1.10 |
| Cryptography | [Crypto proto](https://github.com/dapr/dapr/blob/5aba3c9aa4ea9b3f388df125f9c66495b43c5c9e/dapr/proto/runtime/v1/dapr.proto#L118) | `v1.0-alpha1/crypto` | The cryptography API enables you to perform **high level** cryptography operations for encrypting and decrypting messages. | [Cryptography API]({{< ref "cryptography-overview.md" >}}) | v1.11 |
| Distributed Scheduler | [Scheduler proto](todo) | `v1.0-alpha1/scheduler` | The distributed scheduler API enables you to schedule and orchestrate jobs in your environment. | [Distributed Scheduler API]({{< ref "distributed-scheduler-overview.md" >}}) | v1.14 |
| Scheduler | [Scheduler proto](todo) | `v1.0-alpha1/scheduler` | The scheduler API enables you to schedule and orchestrate jobs in your environment. | [Scheduler API]({{< ref "scheduler-overview.md" >}}) | v1.14 |

## Beta APIs

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ For CLI there is no explicit opt-in, just the version that this was first made a
| **Actor State TTL** | Allow actors to save records to state stores with Time To Live (TTL) set to automatically clean up old data. In its current implementation, actor state with TTL may not be reflected correctly by clients, read [Actor State Transactions]({{< ref actors_api.md >}}) for more information. | `ActorStateTTL` | [Actor State Transactions]({{< ref actors_api.md >}}) | v1.11 |
| **Transactional Outbox** | Allows state operations for inserts and updates to be published to a configured pub/sub topic using a single transaction across the state store and the pub/sub | N/A | [Transactional Outbox Feature]({{< ref howto-outbox.md >}}) | v1.12 |
| **Component Hot Reloading** | Allows for Dapr-loaded components to be "hot reloaded". A component spec is reloaded when it is created/updated/deleted in Kubernetes or on file when running in self-hosted mode. Ignores changes to actor state stores and workflow backends. | `HotReload`| [Hot Reloading]({{< ref components-concept.md >}}) | v1.13 |
| **Scheduler reminders** | While [Scheduler]({{< ref scheduler.md >}}) is deployed by default, scheduler reminders (used for scheduling actor reminders) are enabled through a preview feature and needs a feature flag. | `SchedulerReminders`| [Scheduler reminders]({{< ref "scheduler-overview.md#scheduler-reminders" >}}) | v1.14 |
6 changes: 3 additions & 3 deletions daprdocs/content/en/reference/api/scheduler_api.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
type: docs
title: "Distributed Scheduler API reference"
linkTitle: "Distributed Scheduler API"
description: "Detailed documentation on the distributed scheduler API"
title: "Scheduler API reference"
linkTitle: "Scheduler API"
description: "Detailed documentation on the scheduler API"
weight: 1300
---

Expand Down

0 comments on commit 7d9bbec

Please sign in to comment.