I found this presentation on Rethinking MVC this morning, as you will see, React's programming model tends to spread "state" in the components. A component should not know anything about whether it is "dirty" or not. I would argue that this kind of factoring is significantly flawed and should not be used https://www.youtube.com/watch?v=1rLRjU5nYH0
You cannot derive the "state" if you don't have this single source of truth. That being said, I believe the depiction of the presenter if not completely accurate. I'll write a post on Redux vs SAM shortly since SAM is more general than Redux, it aims at replacing it.
@jdubray Looking forward to your Redux vs SAM article. Would the central topic also extend to Relay/GraphQL and Falcor? It would be good to understand how SAM applies in any of these optional backend scenarios.
I am not a big fan of GraphQL, looks interesting on paper, but breaks the "reactive" loop, which I believe a lot of people feel that's where we need to go. The View simply cannot make requests to the back-end. SAM was created to plugin microservices framework like http://hivepod.io
I don't believe that there is a general way to query a back-end, but perhaps I am biased. Facebook is wealthy enough to afford someone to build that for them, but I have trouble to believe that the traditional IT organization can afford it
I was a co-author of the SDO spec (Service Data Object), so I believe more in healthy relationship between Model-Systems of Record
If you look at SAM, you have the front-end reactive loop that's designed to work almost in isolation, somewhat like a conveyor belt, how data elements are picked up for or put on the conveyor belt should be completely hidden from it.
Yes, caught what you said about GraphQL in the first article and it was enlightening to hear what GraphQL really was. In the article you mentioned the CRUD layer and I can see Firebase here for sure. What about Falcor that is another interesting approach?
Right, I'm hoping to have SAM work well with Cycle, seems what SAM does is still rather vague in Cycle. Cycle only has drivers, which is a functional thing and then MVI, which is a very rough version of MVC to work with, seems everything else is ad hoc and generally up in the air.