Redux
Redux is a predictable state container designed to help you write JavaScript applications that behave consistently, run in different environments (client, server, and native), and are easy to test. While it's often used with React or Angular for building user interfaces, Redux is an independent library that can be utilized with any JavaScript framework or library. At a high level, Redux provides a centralized "store" for all the state in your application, with well-defined rules for how that state can be updated. This makes applications easier to understand, debug, and scale.