Skip to content

Feature/durable#2

Merged
jsedlak merged 9 commits into
mainfrom
feature/durable
Feb 27, 2026
Merged

Feature/durable#2
jsedlak merged 9 commits into
mainfrom
feature/durable

Conversation

@jsedlak

@jsedlak jsedlak commented Feb 26, 2026

Copy link
Copy Markdown
Owner
  • Adds use of Durable framework back in
  • Updates to .NET 10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Reintroduces Orleans Durable framework support in JournaledGrain while upgrading the library and test projects to .NET 10 / Orleans 10-era dependencies.

Changes:

  • Upgrade target frameworks to net10.0 and update core/test package references.
  • Refactor JournaledGrain to use DurableGrain, durable collections, logging, and reminder-based outbox retry.
  • Remove old (commented-out) Sidecar test scaffolding and add test cluster console logging.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/Strata/Strata.csproj Updates TFMs/packages and adds reminders dependency for reminder-based outbox handling.
src/Strata/JournaledGrain.cs Switches to Durable state primitives, adds logging, refactors outbox processing + reminder retry.
src/Strata/IJournaledGrain.cs Removes ProcessOutbox() from the public interface.
src/Strata/EventEnvelope.cs Changes event timestamp type to DateTimeOffset.
src/Strata.Journaling.Tests/Strata.Journaling.Tests.csproj Updates test TFM and test-related package references.
src/Strata.Journaling.Tests/JournalingTests/JournalingTestFixture.cs Configures console logging for the in-process Orleans test cluster.
src/Strata.Journaling.Tests/SidecarTests/* Removes legacy commented-out Sidecar test files.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Strata/Strata.csproj
Comment thread src/Strata/JournaledGrain.cs
Comment thread src/Strata/JournaledGrain.cs Outdated
Comment thread src/Strata/EventEnvelope.cs
Comment on lines +79 to +92
public async Task ReceiveReminder(string reminderName, TickStatus status)
{
if(reminderName == OutboxCleanupReminderName)
{
_logger.LogInformation("Received reminder for outbox cleanup.");

var reminder = await this.GetReminder(OutboxCleanupReminderName);
if(reminder is not null)
{
await this.UnregisterReminder(reminder);
}

await TryProcessOutbox();
}

Copilot AI Feb 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new reminder-based retry path (OnDestroyState registering OutboxCleanupReminderName + ReceiveReminder triggering TryProcessOutbox) isn't covered by tests. Consider adding a test which forces an outbox delivery failure, deactivates the grain, and asserts the reminder reactivates the grain and retries (and then unregisters itself).

Copilot uses AI. Check for mistakes.
Comment thread src/Strata/IJournaledGrain.cs

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated 13 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Strata/JournaledGrain.cs Outdated
Comment on lines +23 to +24
//private Task? _outboxProcessingTask = null;
// private ConcurrentBag<Task> _backgroundTasks = new();

Copilot AI Feb 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These commented-out lines of code should be removed. Leaving large blocks of commented code in production code reduces readability and maintainability. If this functionality may be needed in the future, it should be tracked in an issue or removed and recovered from version control if needed.

Copilot uses AI. Check for mistakes.
Comment thread src/Strata/JournaledGrain.cs
Comment thread src/Strata/JournaledGrain.cs Outdated
Comment on lines 128 to 129
// _backgroundTasks.Add(newProcessingTask);

Copilot AI Feb 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commented-out line should be removed for the same reasons as the other commented code - it reduces code readability and maintainability.

Suggested change
// _backgroundTasks.Add(newProcessingTask);

Copilot uses AI. Check for mistakes.
Comment thread src/Strata/JournaledGrain.cs Outdated
Comment thread src/Strata/JournaledGrain.cs
Comment thread src/Strata/JournaledGrain.cs
Comment thread src/Strata/JournaledGrain.cs
Comment thread src/Strata/JournaledGrain.cs
Comment thread src/Strata/JournaledGrain.cs
Comment thread src/Strata/JournaledGrain.cs Outdated
@jsedlak jsedlak merged commit fb0817b into main Feb 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants