A computing apparatus (101, 801) comprising: one or more computer readable storage media; a processing system operatively coupled with the one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media that, when executed by the processing system, direct the processing system to at least: receive at a wet ink component, inking input on a canvas in a user interface to an application (103, 806); render ink from the inking input in a wet state on the canvas along a path taken by the inking input; communicate at intervals the ink in the wet state, from the wet ink component to a dry ink component which is susceptible of persisting the ink to storage; monitor for the inking input to reverse direction along the path, the wet ink component receiving the inking input reversing the direction along the path at the same time or substantially at the same time as communicating at intervals the ink in the wet state; in response to the inking input reversing the direction along the path, immediately erase by means of the wet ink component at least a portion of the ink in the wet state along the path in said reversed direction from the canvas, and communicate an ignore instruction from the wet ink component to the dry ink component to alert the dry ink component about said erased portion of the ink; run a check loop at the dry ink component by checking on whether an ignore instruction has been received from the wet ink component since the last persisting; when the ignore instruction has been received, commit at the dry ink component, a subset of the communicated ink by persisting the subset of the communicated ink, the remaining subset of the communicated ink corresponding to said erased portion of the ink and being not persisted; and render at the dry ink component, an object of the ink in a dry state. one or more computer readable storage media; a processing system operatively coupled with the one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media that, when executed by the processing system, direct the processing system to at least: receive at a wet ink component, inking input on a canvas in a user interface to an application (103, 806); render ink from the inking input in a wet state on the canvas along a path taken by the inking input; communicate at intervals the ink in the wet state, from the wet ink component to a dry ink component which is susceptible of persisting the ink to storage; monitor for the inking input to reverse direction along the path, the wet ink component receiving the inking input reversing the direction along the path at the same time or substantially at the same time as communicating at intervals the ink in the wet state; in response to the inking input reversing the direction along the path, immediately erase by means of the wet ink component at least a portion of the ink in the wet state along the path in said reversed direction from the canvas, and communicate an ignore instruction from the wet ink component to the dry ink component to alert the dry ink component about said erased portion of the ink; run a check loop at the dry ink component by checking on whether an ignore instruction has been received from the wet ink component since the last persisting; when the ignore instruction has been received, commit at the dry ink component, a subset of the communicated ink by persisting the subset of the communicated ink, the remaining subset of the communicated ink corresponding to said erased portion of the ink and being not persisted; and render at the dry ink component, an object of the ink in a dry state. receive at a wet ink component, inking input on a canvas in a user interface to an application (103, 806); render ink from the inking input in a wet state on the canvas along a path taken by the inking input; communicate at intervals the ink in the wet state, from the wet ink component to a dry ink component which is susceptible of persisting the ink to storage; monitor for the inking input to reverse direction along the path, the wet ink component receiving the inking input reversing the direction along the path at the same time or substantially at the same time as communicating at intervals the ink in the wet state; in response to the inking input reversing the direction along the path, immediately erase by means of the wet ink component at least a portion of the ink in the wet state along the path in said reversed direction from the canvas, and communicate an ignore instruction from the wet ink component to the dry ink component to alert the dry ink component about said erased portion of the ink; run a check loop at the dry ink component by checking on whether an ignore instruction has been received from the wet ink component since the last persisting; when the ignore instruction has been received, commit at the dry ink component, a subset of the communicated ink by persisting the subset of the communicated ink, the remaining subset of the communicated ink corresponding to said erased portion of the ink and being not persisted; and render at the dry ink component, an object of the ink in a dry state.