Web app architecture based on Redux


My latest side project is a full-blown web app made with some of the latest front-end technologies. The purpose of this article is to describe the modular architecture solution that I’ve used in that web app.

This architecture is dependent on some libraries and their concepts, which will be somewhat explained throughout the article:

  • Redux which is a “predictable state container for JavaScript apps” helping you to “write applications that behave consistently”;
  • RxJS which is a “library for composing asynchronous and event-based programs by using observable sequences”;
  • “Epics” from Redux-Observable which is a side-effects manager for Redux, allowing for composing of asynchronous actions in reaction to other actions using observables (there are other similar solutions, e.g. @ngrx/effects);
  • Apollo GraphQL client. GraphQL is “a query language for APIs” and a beautiful evolution from REST. On the architecture depicted here the GraphQL is not a mandatory option. Other data providers can be used on this architecture.


Read the full article.