Skip to content

feat(durablejobs): port to journaled storage catalog#10148

Merged
ReubenBond merged 4 commits into
dotnet:mainfrom
ReubenBond:rebond/durablejobs-journaling-foundation
May 30, 2026
Merged

feat(durablejobs): port to journaled storage catalog#10148
ReubenBond merged 4 commits into
dotnet:mainfrom
ReubenBond:rebond/durablejobs-journaling-foundation

Conversation

@ReubenBond

@ReubenBond ReubenBond commented May 29, 2026

Copy link
Copy Markdown
Member

Ports DurableJobs from the Azure-specific shard implementation to the shared journaling storage catalog model.

This introduces journaled DurableJobs shard state, journal storage catalog abstractions, volatile journal storage coverage, and updates the DurableJobs tests and public API surface for the new storage model.

Microsoft Reviewers: Open in CodeFlow

Recreate the DurableJobs implementation on top of the Azure Blob
journal compaction work. Replace the older shard storage implementation
with journaled shard management and provider-neutral catalog APIs,
while preserving the target Azure journaling compaction implementation.

* Add IJournalStorageCatalog, JournalStorageId, JournalStoragePrefix,
  JournalStorageProperties, and VolatileJournalStorage in
  Orleans.Journaling.
* Add JobShardId, JournaledJobShard, JournaledJobShardManager,
  JournaledJobShardState, and DurableJobsJsonContext in
  Orleans.DurableJobs; remove the now-unused InMemoryJobShard /
  AzureStorageJobShard implementations and the netstring JSON
  serializer support.
* Update Orleans.Journaling.AzureStorage to host blob-backed journals
  via AzureBlobJournalStorageProvider; trim the journaling storage API
  surface and unify journal storage abstractions.
* Register the shared journaling state services and factory as
  singleton so singleton durable job services do not capture scoped
  dependencies.
* Wire DurableJobs catalog/shard tests across InMemory and Azure
  providers and update the public API surface accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ReubenBond and others added 3 commits May 29, 2026 07:53
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add representative durable jobs coverage for journaled shard management and split Azure-backed DurableJobs tests into a dedicated project.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore shared DurableJobs shard-manager scenario coverage over the journaled shard manager and run it against both volatile journal storage and Azure Blob-backed DurableJobs storage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ReubenBond ReubenBond added this pull request to the merge queue May 29, 2026
Merged via the queue into dotnet:main with commit c6c5826 May 30, 2026
62 checks passed
@ReubenBond ReubenBond deleted the rebond/durablejobs-journaling-foundation branch May 30, 2026 00:05
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 29, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant