refactor: expose projection config via free function API, then reduce public surface #357
No reviewers
Labels
No labels
adr
automated
bug
chore
dependencies
documentation
enhancement
epic
github-actions
P1-high
P2-medium
P3-low
release
research
rust
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jwilger/eventcore!357
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refactor/layered-api-281"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implements ADR-030 (layered public API) properly by following the refactor-sequencing guardrail: add new reachability before removing old reachability.
ProjectionConfig+run_projection_with_config(), following theexecute(store, command, policy)precedent.ProjectionConfigstruct with builder methods (.continuous(),.poll_interval(),.event_retry_max_attempts(), etc.) andrun_projection_with_config()free function.run_projection()unchanged as zero-config convenience.eventcore(they remain ineventcore-types). MakeProjectionRunner,PollMode,PollConfig,EventRetryConfig,NoCheckpointStorecrate-internal.eventcore_types.projection-system.mdreflects new public API.Approach (add before remove)
This replaces the closed PR #353 which violated the refactor-sequencing guardrail by deleting functionality before the replacement API existed. This PR follows the correct sequence:
ProjectionConfig+run_projection_with_config()for batch modeTest plan
run_projection()callers unchanged (backward compatible)Closes #281
Closes #272
@ -0,0 +1,156 @@# ADR-0037: Projection Configuration via Free Function APIBut breaking changes are perfectly fine. This is pre-1.0 software. Breaking chages are expected at this state. Better to err on the side of the best API rather than protecting backward-compatibility that we don't need yet. (This changes post 1.0 release.)
@ -0,0 +1,156 @@# ADR-0037: Projection Configuration via Free Function APIAgreed. Merged
run_projection_with_config()intorun_projection()— it now takesProjectionConfigas a third parameter directly. Updated the ADR rationale, all callers, blueprint, and doc comments. The overcautious backward-compatibility concern is removed.