Releases: resonatehq/resonate
Resonate v0.7.0
Overview
This release includes important features that get us closer to the goal of full distributed async/await. It includes the implementation of Resonate's recovery and coordination protocols in the form of the router and sender subsystems, as well as better handling of tasks and callbacks. The project continued to grow its community, welcoming one new contributor @TusharMohapatra07 who brought Tasks CLI support for operations like claiming, completing, and managing heartbeats.
The version 0.7.0 marks significant progress in the project's development, with major improvements across multiple areas of the system. The team has focused on enhancing the tasks system, introducing Tasks v2 with more robust management and Tasks CLI support for critical operations like claiming, completing, and managing heartbeats. The introduction of root promise-based task completion represents a sophisticated approach to task tracking and management.
Infrastructural improvements are notable, with the addition of new subsystems including a router, sender, and a poll plugin. The team has also worked on refactoring the AIO subsystem and configuration, improving the overall system architecture. Support for PostgreSQL store and expanded architecture support with arm64 were key technical advancements.
Lastly, this release also saw improvements in error handling, OpenAPI specification updates, and several dependency upgrades.
What's Changed
- Cleanup by @dfarr in #368
- Tasks v2 by @dfarr in #375
- Implement postgres store readpromises by @dfarr in #380
- Refactor aio subsystem and config by @dfarr in #388
- build(deps): bump github.com/prometheus/client_golang from 1.19.1 to 1.20.2 by @dependabot in #389
- Change Slack link to Discord invite link by @flossypurse in #407
- Create callback request returns 200 by @dfarr in #406
- Refactor errors by @dfarr in #409
- Update release workflow to support arm64 by @dfarr in #417
- Add router and sender subsystems by @dfarr in #405
- Add poll plugin by @dfarr in #425
- build(deps): bump github.com/mattn/go-sqlite3 from 1.14.22 to 1.14.23 by @dependabot in #413
- build(deps): bump github.com/go-playground/validator/v10 from 10.22.0 to 10.22.1 by @dependabot in #414
- build(deps): bump github.com/prometheus/client_golang from 1.20.2 to 1.20.4 by @dependabot in #426
- build(deps): bump google.golang.org/grpc from 1.65.0 to 1.67.0 by @dependabot in #427
- build(deps): bump DeterminateSystems/nix-installer-action from 13 to 14 by @dependabot in #420
- build(deps): bump DeterminateSystems/flake-checker-action from 8 to 9 by @dependabot in #421
- build(deps): bump DeterminateSystems/magic-nix-cache-action from 7 to 8 by @dependabot in #422
- Rename fields to ttl by @dfarr in #432
- Update openapi spec by @dfarr in #433
- Remove required for timeout and ttl fields by @dfarr in #437
- Add default logical receiver to sender subsystem by @dfarr in #438
- Ignore 429 and make sure msgs have been processed by @Tomperez98 in #440
- build(deps): bump google.golang.org/grpc from 1.67.0 to 1.67.1 by @dependabot in #434
- add claim, complete and heartbeat tasks to cli by @TusharMohapatra07 in #443
- build(deps): bump google.golang.org/protobuf from 1.34.2 to 1.35.1 by @dependabot in #441
- build(deps): bump github.com/mattn/go-sqlite3 from 1.14.23 to 1.14.24 by @dependabot in #442
- build(deps): bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 by @dependabot in #445
- build(deps): bump go.uber.org/mock from 0.4.0 to 0.5.0 by @dependabot in #444
- Replace task counter from 0 to 1 when creating promise with task by @avillega in #447
- Enqueue one task per root_promise_id by @avillega in #448
- Revert "Enqueue one task per root_promise_id" by @avillega in #457
- Enqueue one task per root by @avillega in #458
- Move Backchannel validation to its own file and set of functions by @avillega in #471
- Complete tasks based on root promise by @avillega in #470
- Avillega/deduplicate callbacks by @avillega in #478
- Add id to callbacks in openapi spec by @dfarr in #485
New Contributors
- @flossypurse made their first contribution in #407
- @Tomperez98 made their first contribution in #440
- @TusharMohapatra07 made their first contribution in #443
- @avillega made their first contribution in #447
Full Changelog: v0.6.0...v0.7.0
Resonate v0.6.0
Release Notes - Version 0.6.0
Overview
This release introduces support for multiple basic auth username/password combos. Thank you @hkiiita!!!
Note: this change requires updating the format of resonate.yml
if basic auth is configured, auth is now an object of username password combos.
api:
subsystems:
http:
auth:
username1: password1
username2: password2
What's Changed
- build(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0 by @dependabot in #339
- fix(lint): making the lint gods happy by @guergabo in #341
- feat(back-channel): verify the task submissions by @guergabo in #338
- build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 by @dependabot in #344
- build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 by @dependabot in #348
- build(deps): bump github.com/go-playground/validator/v10 from 10.20.0 to 10.22.0 by @dependabot in #349
- build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #350
- build(deps): bump github.com/go-chi/chi/v5 from 5.0.12 to 5.0.14 by @dependabot in #353
- Basic Auth for multiple users. by @hkiiita in #352
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.65.0 by @dependabot in #355
- build(deps): bump github.com/go-chi/chi/v5 from 5.0.14 to 5.1.0 by @dependabot in #354
- gocoro refactor by @dfarr in #356
- build(deps): bump docker/build-push-action from 5 to 6 by @dependabot in #351
- build(deps): bump DeterminateSystems/magic-nix-cache-action from 6 to 7 by @dependabot in #347
- build(deps): bump DeterminateSystems/flake-checker-action from 7 to 8 by @dependabot in #346
- build(deps): bump DeterminateSystems/nix-installer-action from 11 to 13 by @dependabot in #367
- Fix ticks in DST workflow by @dfarr in #369
- Set correct CompletePromise response code by @dfarr in #374
New Contributors
Full Changelog: v0.5.6...v0.6.0
Resonate v0.5.6
Release Notes - Version 0.5.6
Overview
This release introduces versioning to the CLI.
New Features
- Added support for versioning in the CLI.
What's Changed
- feat(version): add version information to cli by @guergabo in #336
- Bump version to 0.5.6 by @guergabo in #337
Full Changelog: v0.5.5...v0.5.6
Resonate v0.5.5
Release Notes - Version 0.5.5
Overview
This release introduces a few dependency bumps and a fix in the postgres AIO store.
Bug Fixes
- Fixed an issue where the timeout promises query, for the postgres AIO store only, was not properly setting the
completed_on
column.
What's Changed
- build(deps): bump DeterminateSystems/flake-checker-action from 5 to 7 by @dependabot in #317
- build(deps): bump DeterminateSystems/magic-nix-cache-action from 4 to 6 by @dependabot in #316
- build(deps): bump DeterminateSystems/nix-installer-action from 10 to 11 by @dependabot in #315
- build(deps): bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 by @dependabot in #318
- build(deps): bump github.com/go-playground/validator/v10 from 10.19.0 to 10.20.0 by @dependabot in #310
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 by @dependabot in #309
- build(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 by @dependabot in #296
- fix(dependabot): added proper pattern matching for dependabot branches by @guergabo in #334
- build(deps): bump github.com/gin-gonic/gin from 1.9.1 to 1.10.0 by @dependabot in #319
- feat(postgres): add postgres service to CI and fix timeout promises query by @guergabo in #335
Full Changelog: v0.5.4...v0.5.5
Resonate v0.5.4
Release Notes - Version 0.5.4
Overview
This release introduces a couple bug fixes and basic user authentication.
What's Changed
- fix(dst): disable sslmode by @guergabo in #324
- Fix lazy promise transitions by @dfarr in #331
- add strict flag for assert by @susarlanikhilesh in #329
- add user basic authentication by @susarlanikhilesh in #332
New Contributors
- @susarlanikhilesh made their first contribution in #329
Full Changelog: v0.5.2...v0.5.4
Resonate v0.5.3
Release Notes - Version 0.5.3
Overview
This release introduces a few performance enhancements and a new flag.
New Features
- Added support for configuring the queries in the postgres connection.
Enhancements
- Optimized the background jobs scheduler and db queries to not overload smaller serverless instances of postgres.
What's Changed
Full Changelog: v0.5.2...v0.5.3
Resonate v0.5.2
Release Notes - Version 0.5.2
Overview
This release introduces a new feature and an enhancement.
New Features
- Added support for simple timers.
Enhancements
- Optimized the scheduling of promises by adding a limit to the query.
What's Changed
- add: limit while scheduling promises by @aneessh18 in #307
- feat(timers): enabling simple timers by @guergabo in #308
- fix(postgres): query bug, one too many args by @guergabo in #314
New Contributors
- @lucperkins made their first contribution in #291
- @aneessh18 made their first contribution in #307
Full Changelog: v0.5.1...v0.5.2
Resonate v0.5.1
Release Notes - Version 0.5.1
Overview
This release introduces an enhancement to our release pipeline and a bug fix in the task framework.
Enhancements
- Nixified our build and release pipeline
Bug Fixes
- Fixed an issue where the task framework would hang if the worker never acknowledges the task submission.
What's Changed
- Update release_verify_artifacts.yaml by @guergabo in #286
- release(changes): include new release pipeline and bug fix by @guergabo in #305
Full Changelog: v0.5.0...v0.5.1
Resonate v0.5.0
Release Notes - Version 0.5.0
Overview
This release is a big one for us! We are proud to introduce several new capabilities that will allow you to both mitigate failures and coordinate distributed services in a dead simple way.
New Features
- Retries: survive transient & intermittent failures with automatic retries of operations.
- Recoverability: survive crash failures and automatically pick up the operation right where it left off.
- Schedules: schedule stateful reminders to run operations periodically.
- Task Framework: distribute tasks across multiple machines for parallel execution and collect the operations’ results.
What's Changed
- Changes to handle REJECTED_TIMEDOUT by @favalos in #224
- Fix: Add additional fields to acquire lock command and return expiresAt by @dfarr in #223
- build(deps): bump codecov/codecov-action from 3 to 4 by @dependabot in #225
- build(deps): bump github.com/mattn/go-sqlite3 from 1.14.19 to 1.14.22 by @dependabot in #226
- build(deps): bump golangci/golangci-lint-action from 3 to 4 by @dependabot in #228
- build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by @dependabot in #233
- build(deps): bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 by @dependabot in #234
- build(deps): bump google.golang.org/grpc from 1.61.0 to 1.62.0 by @dependabot in #231
- build(deps): bump github.com/go-playground/validator/v10 from 10.17.0 to 10.19.0 by @dependabot in #235
- installation scripts by @vaibhawvipul in #232
- refactor(remove): nightly build is no longer needed by @guergabo in #236
- build(deps): bump google.golang.org/grpc from 1.62.0 to 1.62.1 by @dependabot in #238
- build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #239
- quickstart cmd for cli by @vaibhawvipul in #244
- feat(tasks): add support for distributed tasks by @guergabo in #229
- refactor(routing): routing based on the endpoint not domain by @guergabo in #249
- Routing by @guergabo in #250
- [ISSUE 246] DST: Fault Injection by @vaibhawvipul in #248
- Revert "[ISSUE 246] DST: Fault Injection" by @vaibhawvipul in #251
- DST fault injection by @vaibhawvipul in #252
- feat(migrations): added table an initial version by @guergabo in #261
- build(deps): bump github.com/go-chi/chi/v5 from 5.0.11 to 5.0.12 by @dependabot in #262
- Latest version for installation by @vaibhawvipul in #265
- feat(ms): translate to ms by @guergabo in #263
- feat(tasks): several small updates by @guergabo in #270
- Tasks devex plus by @guergabo in #271
- fix(dst): add queueing dst by @guergabo in #275
- Add additional order by clause to task queries by @dfarr in #277
- DST fault injection bug fix by @vaibhawvipul in #267
- Prevent runaway lock timeout by @dfarr in #280
- Update lock timeout calculation on heartbeat by @dfarr in #284
- Test both default and fault injection dst scenarios by @dfarr in #281
- test(unit): add more unit test coverage by @guergabo in #285
- Release pipeline by @guergabo in #245
Full Changelog: v0.2.0...v0.5.0
v0.2.0
What's Changed
- Order schedules in select all by @dfarr in #200
- build(deps): bump github.com/oapi-codegen/runtime from 1.1.0 to 1.1.1 by @dependabot in #190
- Add Flag to Reset the DB on Shutdown. by @favalos in #202
- build(deps): bump github.com/go-playground/validator/v10 from 10.16.0 to 10.17.0 by @dependabot in #205
- feat(locks): add support for distributed locking by @guergabo in #203
- fix(dst): add locksAffected by @guergabo in #210
- build(deps): bump actions/cache from 3 to 4 by @dependabot in #214
- fix(dst) by @guergabo in #215
- feat(locks): improve usability by accepting delta by @guergabo in #216
- chore: fix readme slack invite link by @yordis in #219
- build(deps): bump github.com/google/uuid from 1.5.0 to 1.6.0 by @dependabot in #222
- build(deps): bump google.golang.org/grpc from 1.60.1 to 1.61.0 by @dependabot in #221
- Changes for Complete coroutine. by @favalos in #218
New Contributors
Full Changelog: v0.1.0...v0.2.0