Rename ReactiveStore to ReactiveStreamStore#1554
Conversation
🦋 Changeset detectedLatest commit: 248de10 The changes in this PR will be included in the next version bump. This PR includes changesets to release 47 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This stack of pull requests is managed by Graphite. Learn more about stacking. |
BundleMonUnchanged files (147)
Total files change +36B +0.01% Final result: ✅ View report in BundleMon website ➡️ |
trevor-cortex
left a comment
There was a problem hiding this comment.
Pure rename of ReactiveStore<T> → ReactiveStreamStore<T> to make room for the orthogonal ReactiveActionStore planned in #1550. No behavioural changes.
What the PR does:
- Renames the source file
reactive-store.ts→reactive-stream-store.ts(and its test counterpart) and updates thesubscribablepackage barrel. - Renames the exported type and re-exports
ReactiveStore<T>as a@deprecatedalias ofReactiveStreamStore<T>so existing consumers don't break. - Updates all
{@link}references (in thesubscribable,kit, andrpc-subscriptions-specpackages) and the matching prose in both READMEs and theSOLANA_ERROR__SUBSCRIBABLE__RETRY_NOT_SUPPORTEDmessage. - Updates the consumer-facing return types of
PendingRpcSubscriptionsRequest.reactive()/reactiveStore()and ofcreateReactiveStoreWithInitialValueAndSlotTrackingto the new name. - Adds a
minorchangeset for@solana/subscribabledocumenting the rename and the deprecation alias.
Things I checked:
- The deprecated alias
export type ReactiveStore<T> = ReactiveStreamStore<T>is structurally identical, so existing user code typed againstReactiveStore<T>continues to compile. - All
{@link ReactiveStore...}references I could find in the touched files have been updated; the only remainingReactiveStorementions are the deprecated alias itself and its JSDoc, which is intentional. - README narrative correctly notes the deprecated alias.
- Filename rename is consistent across source, test, and barrel import.
Minor observation, not blocking:
- The changeset only declares
@solana/subscribableas bumpingminor, but the visible API surface of@solana/rpc-subscriptions-spec(and transitively@solana/rpc-subscriptions,@solana/kit) also changed —reactive()/reactiveStore()now returnReactiveStreamStore<TNotification>. Because the publishable packages are version-locked via thefixedconfig, they'll all bump together regardless, so this isn't a release-correctness issue. Worth being aware of if anyone reads only the changeset to understand the change footprint.
LGTM from my side — leaving as a comment review since I don't have approve rights on this repo.
|
Documentation Preview: https://kit-docs-26mc7imm7-anza-tech.vercel.app |
4319058 to
b1fcac1
Compare
lorisleiva
left a comment
There was a problem hiding this comment.
I know I suggested ReactiveStreamStore but spending a bit more time discussing that with Claude we came across ReactiveEventStore which I think is pretty spot-on and is a better sibling to ReactiveActionStore. The latter could even become ReactiveCommandStore to really lean into the Event/Command language and give more meaning to the dispatch function. Wdyt?
|
@lorisleiva I slightly prefer Stream to Event, because I think Event implies append-only and access/replay to the whole event log, where our semantic (for the reactive interface) is that it's the latest data. I also slightly prefer Action because Command (to me) implies mutation, which works for |
|
@mcintyre94 Ah yeah these are fair points. Stream/Action it is! |
57fd7dd to
330cffd
Compare
b1fcac1 to
4e1f9d1
Compare
4e1f9d1 to
09c9c22
Compare
330cffd to
a9b4199
Compare
Merge activity
|
09c9c22 to
248de10
Compare
|
🔎💬 Inkeep AI search and chat service is syncing content for source 'Solana Kit Docs' |

See discussion: #1550 (comment)
We decided to rename
ReactiveStoretoReactiveStreamStore, to make space for an orthogonalReactiveActionStore.