Front end clients built using reactjs can appear to modify data but in order for this modifications to persist, the modifications need to be stored on the backend. However, unlike traditional client-server apps, the data being rendered on the client is not being derived from the backend at all times.
For instance, using the classic To-Do app example, given the initial state
(psuedo-code)
To Do List
* Task 1
<input> Add your new task here </input>
<button> Add Task</button>
When the user adds a new task, the client updates the list of task
To Do List
* Task 1
* Task 2
<input> Add your new task here </input>
<button> Add Task </button>
However, the newly added task, "Task 2", is not necessarily in existence on the backend. What are the accepted approaches to push this information back to the backend in order to ensure performance (the client does not have to wait for the round-trip to update) and consistency (if the backend update fails, the user needs to be made aware and can take some kind of action)?