I'm developing an experimental application for work that requires fully persistent undos and redos. I decided to use react/redux/immutable JS tech stack to solve this problem because I saw it worked out nicely.
I'm actually really happy with the simplicity of the solution but my issue with this decision is that this architecture and tech-stack deviates from what the team currently uses which is an angular/polymer/vue style two-way data-binding architecture.
So in an effort to remain open-minded:
Is undo and redo possible/feasible with two-way data binding when compared uni-directional data flow and fully persistent data structures?
Why or why not? How do you achieve fully-persistent undos/redos with two-way data binding?
From my comment below:
I am concerned with recording any change to the data model so the user can undo those. I have personally found success in doing so using immutable persistent data structures with 'uni-directional data flow' because I know where changes come in and where to save previous models. I can then emit a previous model and have react re-render when an undo action occurs. Now what I want to know is how to implement undos and redos that can track any change and undo it using two-way data binding architecture instead. I'm open to any solution that solves this problem using two-way data binding