# Data flow — ReactiveX/rxjs

> Canonical page: https://codevetter.com/unpack/rxjs/data-flow

# Data flow — ReactiveX/rxjs

Scanned commit 54796b38a57e6309f9861e174737479bb3f63f61 (2026-08-05). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Runtime values enter through producer callbacks or platform conversion and move through derived Subscribers. AbortSignals carry ownership upstream, while construction hooks preserve the selected lifecycle. Tooling transforms source into planned file outputs, and the documentation app moves generated JSON through caches, worker indexing, and DOM rendering.
- subscribe wraps the observer in SafeObserver, joins or creates the weakly referenced Subscriber, attaches cancellation, and invokes the producer only for a new activation. — [packages/observable-polyfill/src/index.ts#L591-L623](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/observable-polyfill/src/index.ts#L591-L623)
- Subscriber.next snapshots observers for fanout; complete closes first, then notifies the snapshot; closure aborts its signal and runs teardowns in reverse order. — [packages/observable-polyfill/src/index.ts#L147-L177](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/observable-polyfill/src/index.ts#L147-L177) [packages/observable-polyfill/src/index.ts#L206-L217](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/observable-polyfill/src/index.ts#L206-L217) [packages/observable-polyfill/src/index.ts#L242-L249](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/observable-polyfill/src/index.ts#L242-L249)
- map constructs through receiver[create]; createImpl selects the receiver's instance constructor or static constructor instead of hardcoding one output type. — [packages/rxjs/src/map.ts#L14-L23](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/rxjs/src/map.ts#L14-L23) [packages/rxjs/src/create.ts#L28-L42](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/rxjs/src/create.ts#L28-L42)
- subscribeToSource forwards unspecified notifications, converts override exceptions into downstream errors, and combines inner cancellation with the downstream signal. — [packages/rxjs/src/util/observable-helpers.ts#L13-L44](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/rxjs/src/util/observable-helpers.ts#L13-L44)
- Migration source passes through semantic rewriting, optional framework adaptation, provenance insertion, sorted diagnostics, and import deduplication into MigrationResult. — [packages/migrate/src/index.ts#L64-L85](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/migrate/src/index.ts#L64-L85) [packages/migrate/src/index.ts#L88-L114](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/migrate/src/index.ts#L88-L114)
- planMigrationFiles reads canonical source paths, chooses output names, attaches repository/SHA/path provenance, and returns transformed files; applyMigrationPlan writes those exact code strings. — [packages/migrate/src/node.ts#L69-L89](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/migrate/src/node.ts#L69-L89) [packages/migrate/src/node.ts#L94-L134](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/packages/migrate/src/node.ts#L94-L134)
- DocumentService maps location.currentPath to cached document streams, fetches generated/docs/<id>.json into AsyncSubject, and deletes failed non-404 cache entries. — [apps/rxjs.dev/src/app/documents/document.service.ts#L38-L73](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/apps/rxjs.dev/src/app/documents/document.service.ts#L38-L73) [apps/rxjs.dev/src/app/documents/document.service.ts#L89-L95](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/apps/rxjs.dev/src/app/documents/document.service.ts#L89-L95)
- Search initialization loads generated search JSON into a Lunr index and pageMap; query-index messages return query results correlated by message type and id. — [apps/rxjs.dev/src/app/search/search.worker.ts#L68-L109](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/apps/rxjs.dev/src/app/search/search.worker.ts#L68-L109) [apps/rxjs.dev/src/app/shared/web-worker.ts#L20-L44](https://github.com/ReactiveX/rxjs/blob/54796b38a57e6309f9861e174737479bb3f63f61/apps/rxjs.dev/src/app/shared/web-worker.ts#L20-L44)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
