Database transactions are pretty awesome. They’re useful in all sorts of scenarios, from concurrency to exception handling. Software-Transactional-Memory is similarly awesome — transactions for memory.
I want transactions for everything.
Imagine doing this in the shell:
$ begin transaction
$ echo "volatile value" > some_file.txt
$ git add . && git commit -m "volatile commit"
$ git push heroku master
$ end transaction
There are all sorts of reasons this won’t work. Imagine all the possible scenarios you’d need in order to make this happen — what happens if I “`curl -X POST “`? Can I undo a POST?
Yeah it would be really hard. But it wold *rock*.