Skip to content

Conversation

@paulirwin
Copy link
Member

No description provided.

@paulirwin paulirwin requested a review from Copilot July 31, 2025 21:14
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces queueing and fan-out support for Syncerbell, allowing sync operations to be distributed across multiple workers or processes. It also includes several improvements to the sync system architecture and API design.

  • Adds ISyncQueueService and SyncQueueService for creating queued sync entries for distributed processing
  • Introduces AcquireLeaseBehavior enum to control lease acquisition behavior during sync operations
  • Refactors sync log persistence interfaces to support finding entries by ID and improved lease management

Reviewed Changes

Copilot reviewed 33 out of 33 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Syncerbell/SyncTriggerType.cs Renames Custom enum value to Unknown to better represent unspecified triggers
Syncerbell/SyncService.cs Adds new sync methods, refactors entity retrieval logic, and updates method signatures
Syncerbell/SyncQueueService.cs New service implementing queue-based sync entry creation for distributed processing
Syncerbell/SyncEntityOptions.cs Adds ParametersJson property for serialized parameter access
Syncerbell/ServiceCollectionExtensions.cs Registers the new ISyncQueueService implementation
Syncerbell/PriorSyncInfo.cs Renames property from LastSyncQueuedAt to LastSyncCreatedAt for clarity
Syncerbell/ParameterSerialization.cs New utility class for consistent parameter serialization
Syncerbell/InMemorySyncLogPersistence.cs Updates to support new persistence interface methods and lease behaviors
Syncerbell/ISyncService.cs Adds new public methods for entity-specific sync operations
Syncerbell/ISyncQueueService.cs New interface defining queue service contract
Syncerbell/ISyncLogPersistence.cs Enhanced interface with new methods for ID-based lookup and improved lease control
Syncerbell/ISyncLogEntry.cs Adds new properties for ID, entity details, queue tracking, and trigger type
Syncerbell/AcquireLeaseBehavior.cs New enum defining lease acquisition behaviors
Syncerbell.EntityFrameworkCore/SyncLogEntry.cs Updates Entity Framework model with new properties
Syncerbell.EntityFrameworkCore/EntityFrameworkCoreSyncLogPersistence.cs Implements new persistence interface methods
ExampleInMemoryQueue/ New example project demonstrating concurrent queue processing
Comments suppressed due to low confidence (1)

Syncerbell/InMemorySyncLogPersistence.cs:118

  • [nitpick] The method name 'TryProcessExistingEntry' is ambiguous. Consider renaming to 'CanAcquireEntry' or 'ValidateEntryForAcquisition' to better reflect its purpose of checking if an entry can be acquired.
    private static bool TryProcessExistingEntry(AcquireLeaseBehavior behavior, InMemoryEntry? logEntry)

@paulirwin paulirwin merged commit 242a513 into main Jul 31, 2025
1 check passed
@paulirwin paulirwin deleted the feature/queueing-fanout branch July 31, 2025 21:44
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