How do you make the whole thing transactional? I don't mean file persistence (you can do that every once in a while) but the whole application. Manual thread synchronization?
You don't need thread synchronization if you don't have threads. ;-)
Threads should be avoided whenever possible and only used when you have no better alternative or if there is a really good performance benefit. Multithreaded programming is easy to screw up and hard to get right, and is usually not needed.