Restate 1.0
We're happy to announce that Restate has reached the 1.0 milestone!
Storage compatibility
From this release onward, we guarantee storage compatibility when updating your Restate deployment. Check the versions documentation for more details.
From now on the SDK and Restate server releases are decoupled, meaning you will be able to run a service built with an old SDK version on newer server releases. More info on that to follow.
Workflow API
We have introduced a new API to simplify building workflows, check out the documentation: https://docs.restate.dev/develop/java/workflows
CLI
We have a bunch of new commands on the CLI to help you develop your application locally, check them out: https://docs.restate.dev/develop/local_dev
Metrics
The server now exports a lot of useful metrics to observe the system, check the documentation to configure them:https://docs.restate.dev/operate/monitoring/metrics
Full list of changes
- Update the softprops/action-gh-release and appany/helm-oci-chart-releaser actions by @tillrohrmann in #1470
- Remove RocksDb writer thread and disable WAL by @AhmedSoliman in #1456
- Add invocation target to invoker events by @slinkydeveloper in #1472
- Removing unnecessary chdir by @AhmedSoliman in #1473
- [RocksDb] Tables consolidation by @AhmedSoliman in #1466
- Partition-scoped storage reader in invoker by @AhmedSoliman in #1474
- Fix for state mutation through CLI by @AhmedSoliman in #1485
- Introducing per-partition PartitionStore by @AhmedSoliman in #1475
- Rename storage-rocksdb to partition-store by @AhmedSoliman in #1476
- PartitionProcessorManager as long-living service by @AhmedSoliman in #1481
- Unbreak datafusion by @AhmedSoliman in #1482
- PartitionId as NewType by @AhmedSoliman in #1483
- Betters shutdown logging by @AhmedSoliman in #1484
- use correct WriteOptions by @AhmedSoliman in #1487
- tx_batch and move sync db behind inner by @AhmedSoliman in #1488
- Introduce TimerKind to support different types of timers by @tillrohrmann in #1480
- Tune rocksdb for multi-cf setup by @AhmedSoliman in #1490
- Export task-center task names to tokio by @AhmedSoliman in #1491
- [ingress] Parse the value of delaySec query param by @igalshilman in #1498
- Tuning and combined improvements for perf and observability by @AhmedSoliman in #1493
- More metrics on PP loop. by @AhmedSoliman in #1497
- Fix the license headers by @jackkleeman in #1518
- Add Workflow service type and handler type by @slinkydeveloper in #1506
- Unify RpcStyle message routing by @AhmedSoliman in #1511
- Persist min/max supported protocol versions by a service endpoint by @tillrohrmann in #1508
- Fix content type checks on input when passing content type arguments by @slinkydeveloper in #1516
- Shorten URL Extract base URL from Google redirect by @khatibomar in #1522
- Workflow API integration part 1 by @slinkydeveloper in #1525
- Record service protocol version and send to service endpoint by @tillrohrmann in #1517
- Set and validate supported service discovery protocol version by @tillrohrmann in #1526
- Add promises support by @slinkydeveloper in #1515
- Implement /restate/invocation/{id}/attach and /restate/invocation/{id}/output by @slinkydeveloper in #1503
- Add sys_promise table by @slinkydeveloper in #1533
- Cloud CLI integration by @jackkleeman in #1519
- Attach to cluster controller through Networking by @AhmedSoliman in #1500
- Partial progress on ClusterState by @AhmedSoliman in #1514
- Adds header to bifrost payloads by @AhmedSoliman in #1520
- Remove unused deps by @AhmedSoliman in #1521
- Export tokio runtime metrics via prometheus by @AhmedSoliman in #1524
- Fix short extra_headers clap arg in CLI by @jackkleeman in #1537
- Fix issue with submit notification for virtual objects by @slinkydeveloper in #1539
- Add cancel/kill all invocations to a service or service instance by @slinkydeveloper in #1529
- Prevent race condition in ResponseTracker by using entry which holds the lock by @tillrohrmann in #1532
- Significantly reduce retry duration of service discovery by @jackkleeman in #1541
- Workflow key should be url encoded by @slinkydeveloper in #1543
- [Bifrost] Support append_batch by @AhmedSoliman in #1536
- Send x-restate-id header back on each request by @slinkydeveloper in #1542
- Introduce Admin API version and verify by CLI by @tillrohrmann in #1538
- Add CLI command to clear state of a specific instance or of all instances by @slinkydeveloper in #1530
- Unify duration parsing in admin api and ingress by @slinkydeveloper in #1547
- Record nanos instead of millis for bifrost record creation time by @AhmedSoliman in #1544
- Introduce bifrost benchpress by @AhmedSoliman in #1545
- Default to low-latency local loglet configuration by @AhmedSoliman in #1546
- Add cloud CLI proxy command by @jackkleeman in #1534
- Remove delaysec by @slinkydeveloper in #1553
- Fix ingress by @slinkydeveloper in #1559
- mock service endpoint by @AhmedSoliman in #1556
- Minor config tuning by @AhmedSoliman in #1557
- [Bifrost] bifrost loglet tailing read streams by @AhmedSoliman in #1558
- Reduce cost of TaskCenter atomics by @AhmedSoliman in #1563
- Attempt the non-blocking write in bg by @AhmedSoliman in #1565
- fix tests by @AhmedSoliman in #1566
- Add
restate invocation purge
to remove the workflow state by @slinkydeveloper in #1555 - Fix invocation_id returned in case we return the completed result of an already existing invocation by @slinkydeveloper in #1562
- Issues/ingress attach idempotency by @slinkydeveloper in #1567
- Add json output to sql queries by @slinkydeveloper in #1561
- Instrumentation and separate pp, ingress, and default runtimes by @AhmedSoliman in #1568
- Disable metric label extraction from tracing due to high cpu cost by @AhmedSoliman in #1569
- Disallow ddl and dml in datafusion by @jackkleeman in #1570
- Create directories in CLI config/env writes by @jackkleeman in #1571
- Use lossy string to log signing key path, as debug would add quotes/escapes by @jackkleeman in #1469
- [Perf] Rocksdb performance tuning by @AhmedSoliman in #1572
- Metadata store uses new memory budgeting by @AhmedSoliman in #1573
- Sql fixes by @slinkydeveloper in #1574
- Fix the sys_inbox table by @slinkydeveloper in #1577
- Fix total order seek for transaction iterators by @AhmedSoliman in #1578
- Update the lua dissector to work with the latest changes by @slinkydeveloper in #1580
- reduce logging level of task center by @AhmedSoliman in #1579
- increase nofile limit on startup by @AhmedSoliman in #1575
- Do not fail iterator on range deletion tombstones by @AhmedSoliman in #1576
- Remove Built in service effects by @slinkydeveloper in #1582
- [introspection] Set the minimal query parallelism to 2 by @igalshilman in #1586
- Fix Restate Cloud auth URL by @jackkleeman in #1587
- Validate that incoming requests to mutate state are sent to keyed services only (virtual objects or workflows) by @slinkydeveloper in #1581
- Add check for output/attach on invocations created without idempotency id or workflow runs by @slinkydeveloper in #1583
- Add a HTTP connect timeout - default 10s by @jackkleeman in #1584
- [rocksdb] Change default statistics level by @AhmedSoliman in #1588
- [rocksdb] Make perf level configurable by @AhmedSoliman in #1591
- Allow bifrost wal fsync to be disabled by @AhmedSoliman in #1592
- Shorten thread names by @AhmedSoliman in #1593
- [experiment] Try threadpool instead of rayon for io pool by @AhmedSoliman in #1594
- allow changing io-mode for writes via hidden config by @AhmedSoliman in #1595
- Invoker task duration histogram by @AhmedSoliman in #1596
- tune defaults with new bench results by @AhmedSoliman in #1598
- Add cloud CLI tunnel command by @jackkleeman in #1552
- Add io-uring as feature by @AhmedSoliman in #1597
- Telemetry for PP health by @AhmedSoliman in #1602
- Disable workflow request/response calls from ingress, and invoke them only once from context client by @slinkydeveloper in #1603
- Update release documentation by @slinkydeveloper in #1604
- Bump 1.0 by @slinkydeveloper in #1605
New Contributors
- @khatibomar made their first contribution in #1522
Full Changelog: v0.9.2...v1.0.0