feat(sdk): add job queue pattern for distributed work claiming#16518
Open
shirshanka wants to merge 2 commits intomasterfrom
Open
feat(sdk): add job queue pattern for distributed work claiming#16518shirshanka wants to merge 2 commits intomasterfrom
shirshanka wants to merge 2 commits intomasterfrom
Conversation
Contributor
|
Linear: ING-1874 Thanks for your contribution! We have created an internal ticket to track this PR. A member of the core DataHub team will be assigned to review it within the next few business days - you will get a follow-up comment once a reviewer is assigned. |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Member
Connector Tests ResultsAll connector tests passed for commit To skip connector tests, add the Autogenerated by the connector-tests CI pipeline. |
Contributor
|
Your PR has been assigned to @skrydal (piotr.skrydalewicz) for review (ING-1874). |
7c5eb21 to
f311023
Compare
Bundle ReportBundle size has no change ✅ |
775400d to
8b800f2
Compare
…smoke tests Introduces the job queue SDK for scalable execution request processing: - ConditionalWriter: CAS (Compare-And-Swap) layer using If-Version-Match headers - Claim: atomic claim/release of entities with is_claimed predicate to prevent sequential overwrites - Discovery and JobQueue orchestration layers - Fix OpenAPI request_helper to forward per-MCP headers (If-Version-Match) - Add executorInstanceId field to ExecutionRequestResult PDL - Smoke tests validating claim lifecycle, concurrent claim races, and sequential conflict detection against live GMS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
datahub.sdk.patterns.job_queuemodule implementing distributed work claiming using CAS (Compare-And-Swap) via GMS'sConditionalWriteValidatoris_claimedsafety check, andfrom_fieldsshortcut for simple aspectsMCLDiscovery(event-driven via MCL stream) andSearchDiscovery(search-based catch-up/fallback)Design
See design doc for full architecture, layer breakdown, sequence diagrams, and design rationale.
Key design decisions:
make_claimed/make_released/is_claimedas constructor argsTest plan
./gradlew :metadata-ingestion:testQuickpasses