Implement ADR-030: Layered Crate Public API Design #266
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#266
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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
Implement ADR-030 to establish a minimal, layered public API for the EventCore crate ecosystem.
Background
ADR-030 establishes that:
eventcorecrate exports only what application developers needeventcore-typescrate is for backend implementersProjectionRunner,PollConfig,PollMode,EventRetryConfigshould NOT be exportedAcceptance Criteria
eventcoreexports only:execute,run_projection,RetryPolicy,BackoffStrategy,ExecutionResponse,MetricsHook,RetryContext,Commandderive,require!macroeventcore-typeslimited to:CommandLogic,CommandStreams,CommandError,Event,StreamId,StreamDeclarations,NewEvents,StreamResolver,Projector,FailureContext,FailureStrategy,StreamPosition,ProjectionError,DelayMilliseconds,AttemptNumberProjectionRunnerremoved from public API (internal only)PollMode,PollConfig,EventRetryConfig,NoCheckpointStoreremoved from public APIeventcore-typesARCHITECTURE.mdupdated to reflect the layered API designSub-Issues
This epic should be broken into smaller issues:
eventcore/src/lib.rsexportseventcore/src/projection.rsto import fromeventcore-typesdirectlyRelated
Closing: Created prematurely before ADR-030 was accepted and synthesized into ARCHITECTURE.md. Will recreate after proper process.