# Undo Manager implementation

**URL:** <https://discuss.emberjs.com/t/undo-manager-implementation/1603>\
**Category:** Uncategorized\
**Created:** [June 23, 2013, 8:52am UTC](https://discuss.emberjs.com/t/undo-manager-implementation/1603 "2013-06-23T08:52:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![salzhrani](https://avatars.discourse-cdn.com/v4/letter/s/919ad9/32.png) [@salzhrani](https://discuss.emberjs.com/u/salzhrani)\
**Post date:** [June 23, 2013, 8:52am UTC](https://discuss.emberjs.com/t/undo-manager-implementation/1603/1 "2013-06-23T08:52:26Z")

</div>

Hello, I use ember with ember data and I am about to implement an undo manager … any ideas, suggestions on aspect of ember and/or ember data that I should leverage? Thanks

---

<div class="post-metadata">

**Author:** ![eccegordo](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/eccegordo/32/14927_2.png) [@eccegordo](https://discuss.emberjs.com/u/eccegordo)\
**Post date:** [October 15, 2013, 10:58pm UTC](https://discuss.emberjs.com/t/undo-manager-implementation/1603/2 "2013-10-15T22:58:15Z")

</div>

Hi @salzhrani Did anything come of this? I am interested in patterns you found to implement this. The latest ember data seems to have done away with transactions and you can save individual records.

[github.com/emberjs/data/blob/master/TRANSITION.md](http://github.com/emberjs/data/blob/master/TRANSITION.md)

One thought that comes to mind is to implement a mixin that provides the undo functionality to individual model records. Perhaps keep a history buffer of changes and flush on saves or past some arbitrary depth.

For simple models this seems relatively straight forward. Where it gets a little hairy is when you have complex relationships and have to manages undo across multiple related objects.

Anyway, very interested to know if you came up with anything.

---

<div class="post-metadata">

**Author:** ![salzhrani](https://avatars.discourse-cdn.com/v4/letter/s/919ad9/32.png) [@salzhrani](https://discuss.emberjs.com/u/salzhrani)\
**Post date:** [October 19, 2013, 12:53am UTC](https://discuss.emberjs.com/t/undo-manager-implementation/1603/3 "2013-10-19T00:53:16Z")

</div>

> [@eccegordo](#):
>
> For simple models this seems relatively straight forward. Where it gets a little hairy is when you have complex relationships and have to manages undo across multiple related objects.
> 
> Anyway, very interested to know if you came up with anything

Excellent input … and there is also a need of an application level object to orchestrate the undoes and redoes.
