redux-observable/redux-observable
RxJS middleware for action side effects in Redux using "Epics" observed · 2026-08-28
Health v2 · maintenance only
76/100
- Activity 97
- Release rhythm 35
- Longevity 100
Flags: no_releases
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: n/a
- age_days: 3787
- days_rel: n/a
- days_push: 22
- n_releases_24m: 0
Adoption not part of the score
7806 stars · 457 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
redux-observable is RxJS-based middleware for Redux that lets you handle action side effects using 'Epics'—functions that take a stream of actions and return a stream of actions. It supports composing and cancelling async actions, dependency injection, and marble-based testing with RxJS's TestScheduler.
Use cases
- handle async side effects in redux apps
- cancel in-flight ajax requests when a new action arrives
- debounce and compose complex async action streams
- test redux side effects deterministically with marble tests
- inject mock dependencies into epics for testing
- manage complex async workflows beyond redux-thunk
When to choose
- your redux app has complex async/side-effect logic that benefits from reactive streams
- your team already knows RxJS and observables
- you need powerful cancellation, debouncing, or racing of async actions
- you want UI-framework-agnostic business logic in redux
When to avoid
- you only have simple side effects—redux-thunk or RTK listeners are simpler
- your team is not comfortable with RxJS and reactive programming
- you're starting a new project where Redux Toolkit's built-in patterns suffice
Facets
library · maturity maintenance
middleware state-management web-framework frontend web-development developer-tools browser cross-platform redux rxjs epics side-effects async-actions reactive-programming typescript nodejs
10 sources
- readme: https://github.com/redux-observable/redux-observable · fetched 2026-08-28 · d219ad56b805
- homepage: https://redux-observable.js.org · fetched 2026-08-29 · 51b0d2ef5737
- site_page: https://redux-observable.js.org/docs/basics/Epics · fetched 2026-08-29 · adb5653c634c
- site_page: https://redux-observable.js.org/docs/basics/SettingUpTheMiddleware · fetched 2026-08-29 · 910fc8bee1a2
- site_page: https://redux-observable.js.org/docs/recipes/Cancellation · fetched 2026-08-29 · ef8e742805bb
- site_page: https://redux-observable.js.org/docs/recipes/ErrorHandling · fetched 2026-08-29 · 0665352a79cd
- site_page: https://redux-observable.js.org/docs/recipes/InjectingDependenciesIntoEpics · fetched 2026-08-29 · b52d07e85568
- site_page: https://redux-observable.js.org/docs/recipes/WritingTests · fetched 2026-08-29 · 7e489645f97d
- site_page: https://redux-observable.js.org/docs/recipes/UsageWithUIFrameworks · fetched 2026-08-29 · b05e9bcabf72
- site_page: https://redux-observable.js.org/docs/recipes/AddingNewEpicsAsynchronously · fetched 2026-08-29 · f2bd9291d5b0
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| redux-observable/redux-observable | main | 76 |
For agents
markdown · JSON · MCP: product_card(name="redux-observable/redux-observable")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem