docs: redesign proposal — batch, Loader, and static flow - #101
Draft
MasterOfBinary wants to merge 3 commits into
Draft
MasterOfBinary wants to merge 3 commits into
MasterOfBinary wants to merge 3 commits into
Conversation
Draft a from-scratch redesign that keeps a bounded stream batcher and request/reply Loader, adds a finite in-process flow graph for fan-out, and leaves dynamic keyed workflows to the application or OnyxCore. Co-authored-by: Vaughn Friesen <MasterOfBinary@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #101 +/- ##
=======================================
Coverage 96.76% 96.76%
=======================================
Files 12 12
Lines 371 371
=======================================
Hits 359 359
Misses 9 9
Partials 3 3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Specify the scheduler state machine, Call lifecycle, and drain/abort table. Replace the shared mutable flow envelope with owned results and an explicit join. Record the review dispositions. Co-authored-by: Vaughn Friesen <MasterOfBinary@users.noreply.github.com>
Unify cut vs dispatch, reject Do after Close, settle waiters on budget expiry, add Started/Wait contracts, and make the enrichment example drain without aborting persist. Co-authored-by: Vaughn Friesen <MasterOfBinary@users.noreply.github.com>
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.
GoBatch redesign proposal
From-scratch redesign of the library, including workflow-style fan-out, written against ShitQuant / OnyxCore / shitlock and the official
#71/#97–#100contracts.Document:
docs/redesign/PROPOSAL.md(revision 3)Reviews:
docs/redesign/REVIEWS.mdRecommendation
Layered redesign (approach B), not a dynamic keyed-task scheduler:
batch.Batcher[T]— stream window with a written scheduler (inbound ≤ n, released ≤ W, handlers ≤ W),Run/Add/Close, named drain vs abort.batch.Loader[In, Out]— request/reply grouping, one terminal outcome perDo, no implicit key coalescing, process-scopedRunctx.flow— finite in-process DAG. Immutable input, owned results,Viewof dependency outputs, explicit join. Sequence, bounded parallel, fan-in, conditions.This is the Decode / Metadata / Prices → evidence → Persist diagram. It is not the previous
workflowlineage onclaude/library-redesign-workflow-9kjqu1.Review
Five independent reviews (adversarial ×2, consumer-fit ×2, Go API ×1). Revision 1 was not approvable. Revision 2 closed the shared-envelope and naming blockers. Revision 3 closes the remaining scheduler and shutdown holes (one cut/dispatch machine,
DoafterCloseisErrClosed, budget settles waiters,Started/Wait, drain example that does not abort persist).Consumers (honest)
Private repos were not readable from this environment.
Roadmap
go getmatches the README (current API).batch(v0.7).flow(v0.8).