-
Notifications
You must be signed in to change notification settings - Fork 0
Queueing/fan-out support, and misc improvements #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this 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
ISyncQueueServiceandSyncQueueServicefor creating queued sync entries for distributed processing - Introduces
AcquireLeaseBehaviorenum 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)
No description provided.