Releases: dapr/dapr
Dapr Runtime v1.14.1
Dapr 1.14.1
Fix Dapr Workflow
Problem
When reusing instance ID in Dapr Workflow, the reminder that deletes in-flight activities would not be called, leaving the workflow in running state.
Impact
Dapr Workflow not processing delete reminder correctly.
Root cause
Change to adopt scheduler in workflows affected the default code path too.
Solution
Flag to only apply the scheduler settings when user opts-in for scheduler reminders.
Dapr Runtime v1.14.1-rc.1
This is the release candidate 1.14.1-rc.1
Dapr Runtime v1.14.0
Dapr 1.14
We're excited to announce the release of Dapr 1.14!
We would like to extend our thanks to all the new and existing contributors who helped make this release happen.
If you're new to Dapr, visit the getting started page and familiarize yourself with Dapr.
Docs have been updated with all the new features and changes of this release. To get started with new capabilities introduced in this release, go to the Concepts and the Developing applications.
Note: This release contains a few breaking changes.
See this section on upgrading Dapr to version 1.14.
Highlights
These are the new feature highlights for the v1.14 release:
Jobs API and Scheduler service (preview)
Many applications require job scheduling, or the need to take an action in the future. The new jobs API is an orchestrator for scheduling these future jobs, either at a specific time or for a specific interval. For example job scheduling is useful in scenarios such as automated database backups, regular Data Processing and ETL, email notifications, maintenance tasks and system updates and batch processing to name a few.
The Dapr’s Jobs API ensures the tasks represented in these types of scenarios are performed consistently and reliably, improving efficiency and reducing the risk of errors. Think of this as a scalable version of the popular Dapr Cron Binding, now as a first class API available via the Dapr SDKs.
You can read more in the Jobs API overview documentation, or dive into a Quickstart Go code example. Support for Jobs is also in the alpha Rust-SDK!
Scheduler service (preview)
The Scheduler service is a new control plane service used to schedule jobs, running in self-hosted mode or on Kubernetes. It is installed by when using Helm or the Dapr CLI and is the service responsible for managing the scheduled jobs.
Increased throughput and scalability for actors and workflows (preview)
The new Scheduler service can optionally be used as the backend for actor reminders and enables increased throughput and lower latency for both actors and workflows. To use the scheduler service for actors and workflows, simply enable it in a Dapr Configuration resource like this:
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: featureconfig
spec:
features:
- name: SchedulerReminders
enabled: true
Important note: Existing reminder data is not be compatible with the scheduler service. The scheduler service should be used only for new actor and workflow reminders
Streaming subscriptions (preview)
Streaming subscriptions are a new type of subscription written in code. Streaming subscriptions are dynamic, meaning they allow for adding or removing subscriptions at runtime. They do not require a subscription HTTP endpoint in your application (which is required by the current programmatic and declarative subscriptions), making them easy to configure in code. Streaming subscriptions also do not require an app to be configured with the sidecar to receive messages. These are an incredibly easy way to configure topic subscriptions for your app. In this release streaming subscriptions are available in the Go SDK.
Actor multi-tenancy with namespacing
Namespacing in Dapr provides isolation, and thus multi-tenancy. With actor namespacing, the same actor type can be deployed into different namespaces. You can then call instances of these actors within the same namespace. Each namespaced actor deployment must use its own separate state store, especially if the same actor type is deployed into different namespaces.
HTTP metrics filtering with path matching
When invoking Dapr using HTTP, metrics are created for each requested method by default. For example metrics include error rates, latency and throughput numbers. This can result in a high number of metrics being reported, known as high cardinality, which can impact memory usage and CPU for your application.
HTTP metric path matching allows you to manage and control the cardinality, or the amount, of HTTP metrics in Dapr. This is an aggregation of metrics, so rather than having a metric for each event, you can reduce the number of metrics events and report an overall number.
Outbox message projections (stable)
The transactional outbox feature allows you to commit state and then send a message in a single transaction and can be used with a broad combination of pub/sub brokers and databases. The transactional outbox is now stable in v1.14 release.
Now in this release, when using the outbox pattern, you can send a different payload to the pub/sub broker than the one saved in the database. These are called outbox message projections, and can be shaped in any way you need.
Service invocation for non-Dapr endpoints (stable)
The ability to invoke non-Dapr endpoints using the Dapr Service invocation APIis now stable.
Dapr Shared (new preview repo in Dapr org)
Although not part of the Dapr runtime v1.14 release, Dapr Shared provides alternative deployment choices for Dapr.
Dapr, by default, is injected as a sidecar to enable the Dapr APIs for your applications for the best availability and reliability. Dapr Shared enables two alternative deployment strategies to create Dapr applications using a Kubernetes Daemonset for a per-node deployment or a Deployment for a per-cluster deployment.
For example, Dapr Shared can be used to reduce resource usage in a cluster or to make a simpler testing deployment environment.
Python SDK updates
- The python-sdk now has support for the cryptography API.
- The python-sdk now supports actor state TTL (timeouts)
Acknowledgements
Thanks to everyone who made this release possible!
@aharonYK, @akshaya-a, @amardeep2006, @andrejpk, @andriisoldatenko, @AnnuCode, @antoniomaria, @agoktugaydin, @alundiak, @andrew-hillier, @antontroshin, @artur-ciocanu, @artursouza, @avoidalone, @berndverst, @bibryam, @bhagya05, @bkc, @bondz, @c-thiel, @cgillum, @cicoyle, @ckcd, @cmendible, @contributor, @daixiang0, @DeepanshuA, @denisbchrsk, @DropSnorz, @ductnn, @dwhiteddsoft, @ecabrerar, @Eileen-Yu, @elena-kolevska, @erwinkramer, @evacchi, @evhen14, @fabistb, @famarting, @james-bartlett, @filintod, @guspan-tanadi, @gralin, @hhunter-ms, @ibandhiya, @imneov, @ItalyPaleAle, @jake-engelberg, @jcchavezs, @jjcollinge, @jmprusi, @joebowbeer, @JoshVanL, @Jossec101, @kaibocai, @KrylixZA, @KentHsu, @kindknow, @ksachdeva, @laurentkempe, @m3nax, @mahparaashley, @marcoscale98, @manojks1999, @MattCosturos, @MichaelHindley, @mikeee, @MO2k4, @mohitpalsingh, @moonorange, @msfussell, @mukundansundar, @nadavv169, @nathandl86, @nelson-parente, @nenikola, @newbe36524, @nikitasarawgi, @olitomlinson, @passuied, @paulyuk, @pdebruin, @philliphoff, @pravinpushkar, @RafaelJCamara, @robertojrojas, @rochabr, @ruokun-niu, @Rutam21, @RyanLettieri, @sadath-12, @salaboy, @svdspradeep, @SantoDE, @shivam-51, @shivamkm07, @shubham1172, @Shubhdeep02, @sicoyle, @Taction, @thewilli, @thompson-tomo, @ThomasVitale, @tmacam, @toneill818, @TomasEkeli, @tlund101, @umerkle, @waltercoan, @wardbeyens, @WhitWaldo, @willtsai, @XavierGeerinck, @yaron2, @zedgell
New in this release
Dapr Runtime
- ADDED New Jobs API + Scheduler Control Plane Service 7768
- ADDED Support dynamic (on-demand) subscribe and unsubscribe of topics by user app 814
- ADDED Support namespace isolation/multi-tenancy for Dapr Actors 3167 4711
- ADDED [PROPOSAL] Identity Management Overhaul 5756
- RESOLVED [Proposal]: Actor State TTL 5899
- Change Dapr state store encryption to use AES in CBC mode 6027
- RESOLVED Incremental improvements to Actor Reminders sub...
Dapr Runtime v1.14.0-rc.12
This is the release candidate 1.14.0-rc.12
Dapr Runtime v1.14.0-rc.11
This is the release candidate 1.14.0-rc.11
Dapr Runtime v1.14.0-rc.10
This is the release candidate 1.14.0-rc.10
Dapr Runtime v1.14.0-rc.9
This is the release candidate 1.14.0-rc.9
Dapr Runtime v1.14.0-rc.8
This is the release candidate 1.14.0-rc.8
Dapr Runtime v1.14.0-rc.7
This is the release candidate 1.14.0-rc.7
Dapr Runtime v1.14.0-rc.6
This is the release candidate 1.14.0-rc.6