Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,3 +128,21 @@
alone, so a read always moves on.
- The Redis and memory Stores read no `to_offset` or `wake_only`. A read with one fails with
`stream_unsupported`, since only the native backend serves them.
- The runtime is a plain object with no Core trait. A bridge builds it per client and calls
`StreamExtension::call` with a method name and proto bytes. An error has `code()` and
`details()`, the encoded `StreamErrorDetails`. The crate no longer depends on
`temporalio-sdk-core`, and it pins `temporalio-common` at sdk-rust Brook c7 `b565c433`.
- The handles of one Producer epoch on one Stream share one writer. Each `OpenWriter` adds a
handle, and each `CloseWriter` or the new `FreeWriter` releases one. `FreeWriter` and
`StreamExtension::free_writer` release with no wait, for a handle that lang drops. The last
handle drops the writer, so a process keeps no writer that no handle uses.
- Every writer in a process takes its batch `sequence` from one counter, so a writer opened again
after its close goes on above its earlier batches. The map of closed writers' sequences is
gone, and it no longer grows for the life of the process.
- `ids::named_client_producer_id` makes `client:<name>`, a client Producer id that the caller
keeps across restarts. With the caller's epoch in `attempt`, a new incarnation fences the
earlier one.
- A client Producer's newer epoch fences its earlier epochs but writes no `Superseded` item and
withdraws nothing, in the Redis script, the memory Store and the reader rule. The withdrawal
rule stays for Workflow, Local Activity and Activity Producers. `testdata/withdrawals.json` has
the case.
Loading
Loading