Skip to content

Commit 3312925

Browse files
Merge branch 'v1.16' into fix-cel-doc-ref
2 parents d0bbb93 + fc7f51d commit 3312925

File tree

14 files changed

+599
-93
lines changed

14 files changed

+599
-93
lines changed

daprdocs/assets/scss/_content.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@
153153
color: $secondary;
154154
}
155155

156+
.card-title > img {
157+
margin-right: 10px;
158+
}
159+
156160
.td-page-meta {
157161

158162
a, a:visited {

daprdocs/content/en/_index.md

Lines changed: 129 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,134 @@ no_list: true
44
---
55
# <img src="/images/home-title.png" alt="Dapr Docs" width=400>
66

7-
Welcome to the Dapr documentation site!
7+
## Dapr, the distributed application runtime
88

9+
Dapr provides APIs for communication, state, workflow, and agentic AI. The APIs decouple the application code from the underlying infrastructure ensuring flexibility and portability. Dapr leverages industry best practices for security, resiliency, and observability, so you can focus on your code.
910

10-
{{% alert title="What is Dapr?" color="primary" %}}
11-
Dapr is a portable, event-driven runtime that makes it easy for any developer to build resilient,
12-
stateless and stateful applications that run on the cloud and edge and embraces the diversity of
13-
languages and developer frameworks. Leveraging the benefits of a sidecar architecture, Dapr helps
14-
you tackle the challenges that come with building microservices and keeps your code platform agnostic.
1511
{{< button text="Get started" page="getting-started.md" >}}
16-
{{% /alert %}}
1712

13+
### Use Cases
14+
15+
<div class="card-deck">
16+
<div class="card">
17+
<div class="card-body">
18+
<h5 class="card-title">
19+
<img src="/images/homepage/workflow.svg" alt="Dapr workflow" width=40>
20+
<b>Workflow Orchestration</b></h5>
21+
<p class="card-text">Orchestrate your microservices reliably with Dapr workflow.</p>
22+
<a href="{{% ref workflow-overview %}}" class="stretched-link"></a>
23+
</div>
24+
</div>
25+
<div class="card">
26+
<div class="card-body">
27+
<h5 class="card-title">
28+
<img src="/images/homepage/dapr-agents.svg" alt="Dapr Agents" width=40>
29+
<b>Agentic AI</b></h5>
30+
<p class="card-text">Create durable agentic AI applications with Dapr Agents.</p>
31+
<a href="{{% ref "../developing-applications/dapr-agents" %}}" class="stretched-link"></a>
32+
</div>
33+
</div>
34+
</div>
35+
<div class="card-deck">
36+
<div class="card">
37+
<div class="card-body">
38+
<h5 class="card-title">
39+
<img src="/images/homepage/service-invocation.svg" alt="Dapr service invocation API" width=40>
40+
<b>Microservices</b></h5>
41+
<p class="card-text">Build resilient microservices using the Dapr service invocation API.</p>
42+
<a href="{{% ref service-invocation-overview %}}" class="stretched-link"></a>
43+
</div>
44+
</div>
45+
<div class="card">
46+
<div class="card-body">
47+
<h5 class="card-title">
48+
<img src="/images/homepage/pub-sub.svg" alt="Dapr pub/sub API" width=40>
49+
<b>Event Driven Architecture</b></h5>
50+
<p class="card-text">Create event-driven applications with the Dapr pub/sub API.</p>
51+
<a href="{{% ref pubsub-overview %}}" class="stretched-link"></a>
52+
</div>
53+
</div>
54+
</div>
55+
56+
### Languages
57+
58+
<div class="card-deck">
59+
<div class="card">
60+
<div class="card-body">
61+
<h5 class="card-title">
62+
<img src="/images/homepage/dotnet.png" alt=".NET logo" width=30>
63+
<b>.NET</b>
64+
</h5>
65+
<p class="card-text">
66+
Learn more about the .NET SDK.
67+
</p>
68+
<a href="{{% ref dotnet %}}" class="stretched-link"></a>
69+
</div>
70+
</div>
71+
<div class="card">
72+
<div class="card-body">
73+
<h5 class="card-title">
74+
<img src="/images/homepage/python.png" alt="Python logo" width=30>
75+
<b>Python</b>
76+
</h5>
77+
<p class="card-text">
78+
Learn more about the Python SDK.
79+
</p>
80+
<a href="{{% ref python %}}" class="stretched-link"></a>
81+
</div>
82+
</div>
83+
<div class="card">
84+
<div class="card-body">
85+
<h5 class="card-title">
86+
<img src="/images/homepage/javascript.png" alt="JS logo" width=30>
87+
<b>JavaScript</b>
88+
</h5>
89+
<p class="card-text">
90+
Learn more about the JavaScript SDK.
91+
</p>
92+
<a href="{{% ref js %}}" class="stretched-link"></a>
93+
</div>
94+
</div>
95+
</div>
96+
97+
<div class="card-deck">
98+
<div class="card">
99+
<div class="card-body">
100+
<h5 class="card-title">
101+
<img src="/images/homepage/javalang.png" alt="Java logo" width=30>
102+
<b>Java</b>
103+
</h5>
104+
<p class="card-text">
105+
Learn more about the Java SDK.
106+
</p>
107+
<a href="{{% ref java %}}" class="stretched-link"></a>
108+
</div>
109+
</div>
110+
<div class="card">
111+
<div class="card-body">
112+
<h5 class="card-title">
113+
<img src="/images/homepage/golang.svg" alt="Go logo" width=30>
114+
<b>Go</b>
115+
</h5>
116+
<p class="card-text">
117+
Learn more about the Go SDK.
118+
</p>
119+
<a href="{{% ref go %}}" class="stretched-link"></a>
120+
</div>
121+
</div>
122+
<div class="card">
123+
<div class="card-body">
124+
<h5 class="card-title">
125+
<img src="/images/homepage/php.png" alt="PHP logo" width=30>
126+
<b>PHP</b>
127+
</h5>
128+
<p class="card-text">
129+
Learn more about the PHP SDK.
130+
</p>
131+
<a href="{{% ref php %}}" class="stretched-link"></a>
132+
</div>
133+
</div>
134+
</div>
18135

19136
### Start developing with Dapr
20137

@@ -113,9 +230,8 @@ you tackle the challenges that come with building microservices and keeps your c
113230
</div>
114231
</div>
115232
</div>
116-
<br>
117233
<div class="card-deck">
118-
<div class="card">
234+
<div class="card">
119235
<div class="card-body">
120236
<h5 class="card-title">
121237
<img src="/images/homepage/code.svg" alt="Code icon" width=40>
@@ -128,81 +244,17 @@ you tackle the challenges that come with building microservices and keeps your c
128244
</div>
129245
</div>
130246
</div>
131-
<br>
132247
<div class="card-deck">
133248
<div class="card">
134249
<div class="card-body">
135250
<h5 class="card-title">
136-
<img src="/images/homepage/dotnet.png" alt=".NET logo" width=30>
137-
<b>.NET</b>
251+
<img src="/images/homepage/dark-blue-dapr.svg" alt="Code icon" width=40>
252+
<b>Dapr University</b>
138253
</h5>
139254
<p class="card-text">
140-
Learn more about the .NET SDK.
255+
Learn Dapr through a series of free hands-on courses in a cloud-based sandbox environment.
141256
</p>
142-
<a href="{{% ref dotnet %}}" class="stretched-link"></a>
143-
</div>
144-
</div>
145-
<div class="card">
146-
<div class="card-body">
147-
<h5 class="card-title">
148-
<img src="/images/homepage/python.png" alt="Python logo" width=30>
149-
<b>Python</b>
150-
</h5>
151-
<p class="card-text">
152-
Learn more about the Python SDK.
153-
</p>
154-
<a href="{{% ref python %}}" class="stretched-link"></a>
155-
</div>
156-
</div>
157-
<div class="card">
158-
<div class="card-body">
159-
<h5 class="card-title">
160-
<img src="/images/homepage/javascript.png" alt="JS logo" width=30>
161-
<b>JavaScript</b>
162-
</h5>
163-
<p class="card-text">
164-
Learn more about the JavaScript SDK.
165-
</p>
166-
<a href="{{% ref js %}}" class="stretched-link"></a>
257+
<a href="https://www.diagrid.io/dapr-university" class="stretched-link"></a>
167258
</div>
168259
</div>
169260
</div>
170-
<br>
171-
<div class="card-deck">
172-
<div class="card">
173-
<div class="card-body">
174-
<h5 class="card-title">
175-
<img src="/images/homepage/javalang.png" alt="Java logo" width=30>
176-
<b>Java</b>
177-
</h5>
178-
<p class="card-text">
179-
Learn more about the Java SDK.
180-
</p>
181-
<a href="{{% ref java %}}" class="stretched-link"></a>
182-
</div>
183-
</div>
184-
<div class="card">
185-
<div class="card-body">
186-
<h5 class="card-title">
187-
<img src="/images/homepage/golang.svg" alt="Go logo" width=30>
188-
<b>Go</b>
189-
</h5>
190-
<p class="card-text">
191-
Learn more about the Go SDK.
192-
</p>
193-
<a href="{{% ref go %}}" class="stretched-link"></a>
194-
</div>
195-
</div>
196-
<div class="card">
197-
<div class="card-body">
198-
<h5 class="card-title">
199-
<img src="/images/homepage/php.png" alt="PHP logo" width=30>
200-
<b>PHP</b>
201-
</h5>
202-
<p class="card-text">
203-
Learn more about the PHP SDK.
204-
</p>
205-
<a href="{{% ref php %}}" class="stretched-link"></a>
206-
</div>
207-
</div>
208-
</div>

daprdocs/content/en/concepts/dapr-services/scheduler.md

Lines changed: 81 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -115,25 +115,93 @@ services:
115115
- ./dapr_scheduler/2:/var/run/dapr/scheduler
116116
```
117117
118-
## Back Up and Restore Scheduler Data
118+
## Managing jobs with the Dapr CLI
119119
120-
In production environments, it's recommended to perform periodic backups of this data at an interval that aligns with your recovery point objectives.
120+
Dapr provides a CLI for inspecting and managing all scheduled jobs, regardless of type.
121+
The CLI is the recommended way to view, back up, and delete jobs.
121122
122-
### Port Forward for Backup Operations
123+
There are several different types of jobs which Scheduler manages:
123124
124-
To perform backup and restore operations, you'll need to access the embedded etcd instance. This requires port forwarding to expose the etcd ports (port 2379).
125+
- `app/{app-id}/{job-name}`: Jobs created via the [Jobs API]({{% ref jobs_api %}})
126+
- `actor/{actor-type}/{actor-id}/{reminder-name}`: Actor reminder jobs created via the [Actor Reminders API]({{% ref "actors-timers-reminders#actor-reminders" %}})
127+
- `activity/{app-id}/{instance-id}::{generation-name}::{activity-index}`: Used internally for [Workflow Activity reminders]({{% ref "workflow-features-concepts.md#workflow-activities" %}})
128+
- `workflow/{app-id}/{instance-id}/{random-name}`: Used internally for [Workflows]({{% ref "workflow-overview.md" %}}).
125129

126-
#### Kubernetes Example
130+
Please see [here for how to manage specifically reminders]({{% ref "actors-timers-reminders#managing-reminders-with-the-cli" %}}) with the CLI.
127131

128-
Here's how to port forward and connect to the etcd instance:
132+
### List jobs
129133

130-
```shell
131-
kubectl port-forward svc/dapr-scheduler-server 2379:2379 -n dapr-system
134+
```bash
135+
dapr scheduler list
136+
```
137+
138+
Example output:
139+
140+
```bash
141+
NAME BEGIN COUNT LAST TRIGGER
142+
actor/myactortype/actorid1/test1 -3.89s 1 2025-10-03T16:58:55Z
143+
actor/myactortype/actorid2/test2 -3.89s 1 2025-10-03T16:58:55Z
144+
app/test-scheduler/test1 -3.89s 1 2025-10-03T16:58:55Z
145+
app/test-scheduler/test2 -3.89s 1 2025-10-03T16:58:55Z
146+
activity/test-scheduler/xyz1::0::1 -888.8ms 0
147+
activity/test-scheduler/xyz2::0::1 -888.8ms 0
148+
workflow/test-scheduler/abc1/timer-0-TVIQGkvu +50.0h 0
149+
workflow/test-scheduler/abc2/timer-0-OM2xqG9m +50.0h 0
150+
```
151+
152+
For more detail, use the wide output format:
153+
154+
```bash
155+
dapr scheduler list -o wide
156+
```
157+
158+
```yaml
159+
NAMESPACE NAME BEGIN EXPIRATION SCHEDULE DUE TIME TTL REPEATS COUNT LAST TRIGGER
160+
default actor/myactortype/actorid1/test1 2025-10-03T16:58:55Z @every 2h46m40s 2025-10-03T17:58:55+01:00 100 1 2025-10-03T16:58:55Z
161+
default actor/myactortype/actorid2/test2 2025-10-03T16:58:55Z @every 2h46m40s 2025-10-03T17:58:55+01:00 100 1 2025-10-03T16:58:55Z
162+
default app/test-scheduler/test1 2025-10-03T16:58:55Z @every 100m 2025-10-03T17:58:55+01:00 1234 1 2025-10-03T16:58:55Z
163+
default app/test-scheduler/test2 2025-10-03T16:58:55Z 2025-10-03T19:45:35Z @every 100m 2025-10-03T17:58:55+01:00 10000s 56788 1 2025-10-03T16:58:55Z
164+
default activity/test-scheduler/xyz1::0::1 2025-10-03T16:58:58Z 0s 0
165+
default activity/test-scheduler/xyz2::0::1 2025-10-03T16:58:58Z 0s 0
166+
default workflow/test-scheduler/abc1/timer-0-TVIQGkvu 2025-10-05T18:58:58Z 2025-10-05T18:58:58Z 0
167+
default workflow/test-scheduler/abc2/timer-0-OM2xqG9m 2025-10-05T18:58:58Z 2025-10-05T18:58:58Z 0
168+
```
169+
170+
### Get job details
171+
172+
```bash
173+
dapr scheduler get app/my-app/job1 -o yaml
132174
```
133175

134-
### Performing Backup and Restore
176+
### Delete jobs
135177

136-
Once you have access to the etcd ports, you can follow the [official etcd backup and restore documentation](https://etcd.io/docs/v3.5/op-guide/recovery/) to perform backup and restore operations. The process involves using standard etcd commands to create snapshots and restore from them.
178+
Delete one or more specific jobs:
179+
180+
```bash
181+
dapr scheduler delete app/my-app/job1 actor/MyActor/123/reminder1
182+
```
183+
184+
Bulk delete jobs with filters:
185+
186+
```bash
187+
dapr scheduler delete-all all
188+
dapr scheduler delete-all app/my-app
189+
dapr scheduler delete-all actor/MyActorType
190+
```
191+
192+
### Backup and restore jobs
193+
194+
Export all jobs to a file:
195+
196+
```bash
197+
dapr scheduler export -o backup.bin
198+
```
199+
200+
Re-import jobs from a backup file:
201+
202+
```bash
203+
dapr scheduler import -f backup.bin
204+
```
137205

138206
## Monitoring Scheduler's etcd Metrics
139207

@@ -155,7 +223,7 @@ For more information on running Dapr on Kubernetes, visit the [Kubernetes hostin
155223

156224
A number of Etcd flags are exposed on Scheduler which can be used to tune for your deployment use case.
157225

158-
### External Etcd database
226+
### External Etcd database
159227

160228
Scheduler can be configured to use an external Etcd database instead of the embedded one inside the Scheduler service replicas.
161229
It may be interesting to decouple the storage volume from the Scheduler StatefulSet or container, because of how the cluster or environment is administered or what storage backend is being used.
@@ -230,4 +298,5 @@ dapr_scheduler.etcdMaxSnapshots=10
230298

231299
## Related links
232300

233-
[Learn more about the Jobs API.]({{% ref jobs_api %}})
301+
- [Learn more about the Jobs API.]({{% ref jobs_api %}})
302+
- [Learn more about Actor Reminders.]{{% ref "actors-features-concepts#reminders" %}})

0 commit comments

Comments
 (0)