We all know the saying: "If all you have is hammer, everything looks like a nail". In the world of software engineering it usually happens to the new, hyped technologies, which are not always used as they should be. As a result, we get more complex API which can only be supported by the engineers that went through fire and water, lots of bugs, and other problems.
How can we avoid broken fingers and things destroyed by hammer when we try to implement React?
As an example we'll discuss a system with problems and, naturally, try to refactor it in reactive manner. We'll cover benefits and drawbacks of not only the approach, but also API of specific implementations. We'll evaluate the level of complexity before and after refactoring. We'll try to learn what is joke and what isn't.