Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Redux
  3. redux-side-effects

redux-side-effects

MITJavaScriptv1.0.1

Redux toolset that enables side effects to be declared within reducers using ES6 generators while preserving purity.

GitHubGitHub
179 stars8 forks0 contributors

What is redux-side-effects?

Redux Side Effects is a Redux toolset that enables side effects to be declared inside reducers using ES6 generators. It solves the problem of scattering business logic across actions and reducers by keeping side effects within the reducer while maintaining purity. This approach ensures reducers remain testable, hot-reloadable, and free from impure execution.

Target Audience

Redux developers who want to centralize domain logic and side effects, especially those inspired by Elm's architecture or frustrated with middleware like redux-thunk scattering logic.

Value Proposition

Developers choose Redux Side Effects because it keeps side effects declarative and testable within reducers, unlike solutions like redux-thunk that split logic. Its generator-based API is intuitive and integrates seamlessly with existing Redux setups.

Overview

Redux toolset for keeping all the side effects inside your reducers while maintaining their purity.

Use Cases

Best For

  • Centralizing side effects and domain logic in Redux applications
  • Writing fully testable Redux reducers with side effects
  • Adopting Elm-like architecture in Redux projects
  • Simplifying async flow management without middleware sprawl
  • Maintaining reducer purity while handling side effects
  • Composing complex reducer logic with yield*

Not Ideal For

  • Teams that prefer using established Redux middleware like redux-thunk or redux-saga for async operations
  • Projects where developers are not familiar with or avoid ES6 generator functions
  • Applications requiring server-side rendering with minimal JavaScript runtime complexity
  • Teams wanting to use arrow function syntax extensively in their Redux reducers

Pros & Cons

Pros

Pure Reducers with Effects

Reducers remain deterministic by yielding side effects declaratively, keeping business logic centralized and testable without impure execution.

Easy Unit Testing

Generators allow direct assertion of yielded effects and state changes via iteration, simplifying test suites without extensive mocking.

Backwards Compatibility

Works seamlessly with existing Redux apps via a store enhancer, ensuring no breaking changes and integration with current codebases.

Declarative Effect Management

Side effects are expressed using the `sideEffect` function, making them explicit and easy to reason about in reducer logic.

Reducer Composition

Supports composing reducers with `yield*`, enabling modular and scalable state logic inspired by Elm's architecture.

Cons

Generator Syntax Limitation

Only supports `function*` syntax, not arrow functions, which can be a barrier for developers used to modern ES6+ syntax.

Middleware Integration Complexity

Requires careful ordering when combining with other Redux middlewares, as noted in the FAQ, leading to potential setup headaches.

Small Community and Ecosystem

Compared to alternatives like redux-thunk or redux-saga, it has fewer users, meaning less community support and fewer resources.

Performance Overhead

Using generators introduces runtime overhead that might impact performance-sensitive applications, though often negligible.

Frequently Asked Questions

Quick Stats

Stars179
Forks8
Contributors0
Open Issues6
Last commit10 years ago
CreatedSince 2015

Tags

#unit-testing#side-effects#elm-architecture#es6#javascript#generators#state-management#middleware#redux

Built With

R
Redux
J
JavaScript
E
ES6

Included in

Redux391
Auto-fetched 9 hours ago

Related Projects

redux-sagaredux-saga

An alternative side effect model for Redux apps

Stars22,420
Forks1,934
Last commit1 day ago
redux-thunkredux-thunk

Thunk middleware for Redux

Stars17,669
Forks1,017
Last commit1 year ago
redux-observableredux-observable

RxJS middleware for action side effects in Redux using "Epics"

Stars7,805
Forks457
Last commit27 days ago
redux-promise-middlewareredux-promise-middleware

Enables robust, simple handling of async action creators in Redux

Stars1,968
Forks182
Last commit2 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub