# redux-saga/redux-saga

An alternative side effect model for Redux apps

Repository: https://github.com/redux-saga/redux-saga
Canonical: https://ross.abutalabs.com/products/redux-saga
Homepage: https://redux-saga.js.org/
Language: JavaScript
License: MIT
License Family: permissive
Topics: redux, sagas, effects, middleware, redux-saga
Last push: 2026-08-23T14:13:18+00:00

## Health v2 (maintenance only)
Score: 98/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 95, longevity 100
- inputs: {"age_days": 3930, "days_push": 10, "days_rel": 38, "gap_med": 0.0, "n_releases_24m": 31}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 22424, forks 1935 (observed 2026-08-28T04:11:32.611827+00:00)

## What it is
redux-saga is a Redux middleware library that manages application side effects like asynchronous data fetching using ES6 generator functions. It models sagas as background threads that can be started, paused, and cancelled via Redux actions, making async flows easy to read, write, and test.

## Use cases
- handle async data fetching in Redux apps
- manage side effects in React applications
- replace redux-thunk for complex async flows
- cancel or race concurrent API requests
- test asynchronous workflows easily
- queue and serialize dispatched actions
- coordinate background tasks with Redux state

## When to choose
- your Redux app has complex async logic with cancellation, racing, or debouncing needs
- you want highly testable side-effect code using generators
- you need fine-grained control over concurrent tasks and action channels
- your team is already invested in Redux and wants a mature side-effect model

## When to avoid
- you use a modern state manager like Redux Toolkit's RTK Query, Zustand, or TanStack Query for data fetching
- your app has only simple async needs that redux-thunk handles fine
- your team is unfamiliar with ES6 generators and can't invest in learning them
- you're not using Redux at all

## Facets
- artifact type: library
- maturity: stable
- function: middleware, state-management, concurrency, http-client
- domain: frontend, web-development, developer-tools
- platform: browser
- tags: redux, sagas, side-effects, generators, async, react, task-cancellation, nodejs, javascript

## Member repositories
- redux-saga/redux-saga (main) score 98

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:32.611827+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:57:10.614820+00:00, confidence not recorded.
  - readme: https://github.com/redux-saga/redux-saga (fetched 2026-08-28T04:11:32.611827+00:00, sha 4b5755b346ca)
  - homepage: https://redux-saga.js.org/ (fetched 2026-08-29T07:55:58.672446+00:00, sha 218857758623)
  - site_page: https://redux-saga.js.org/docs/introduction/GettingStarted (fetched 2026-08-29T07:55:58.675156+00:00, sha f83d8ae6e7d5)
  - site_page: https://redux-saga.js.org/docs/basics/DeclarativeEffects (fetched 2026-08-29T07:55:58.677195+00:00, sha 08dc15231d42)
  - site_page: https://redux-saga.js.org/docs/advanced/Channels (fetched 2026-08-29T07:55:58.679384+00:00, sha 9546504d23f4)
  - site_page: https://redux-saga.js.org/docs/api (fetched 2026-08-29T07:55:58.682287+00:00, sha 7da324b22ac1)
  - site_page: https://redux-saga.js.org/docs/introduction/BeginnerTutorial (fetched 2026-08-29T07:55:58.685639+00:00, sha 067014879a22)
  - site_page: https://redux-saga.js.org/docs/Glossary (fetched 2026-08-29T07:55:58.687600+00:00, sha 62310fd5d7ad)
  - site_page: https://redux-saga.js.org/docs/Troubleshooting (fetched 2026-08-29T07:55:58.689245+00:00, sha cc7589a16534)
  - site_page: https://redux-saga.js.org/docs/ExternalResources (fetched 2026-08-29T07:55:58.690888+00:00, sha e595a17fb8ae)
- Data as of 2026-08-30T08:39:29.467469+00:00.
