Facebook's React and Flux Architecture I am a big fan of Facebook's Flux pattern. It just makes a lot of sense to me. And hopefully to you as well if I do a good job explaining it. The Flux pattern can be used in large scale applications. Relay is build on top of the same pattern. So a good understanding of flux will help you understand Relay.
Flux is just a pattern, a simple one, you have lots of opportunities in the way you end up working with it. Relay on the other hand is an opinionated framework. So what is the problem the Flux pattern is trying to solve? A few years back, model view controller pattern emerged and sort of revolutionised web development. This application had, for instance, 3-6 models. The controller acquired those details from the model and views represented it. As we started to add more models some of those models started to acquire information from other models. Dependencies aries and this is nothing new - it just happens. So this application with all its models is now in production and ready to be upgraded. With a high pace of development your customer addresses the need for new features to be implemented. Some of those features require you to create an environment where more models are depended on each other. Guess what, the your single source of truth just vanished. Everything depends on something else and you end up with an unstable application state.