If so, I'll have to ensure that this behavior finds a way to "mark" anything with irreversible side-effects or simply identify and disallow them.So, you want a transaction. If all your actions are done in a database, then it's easy: just begin a transaction, commit if you succeed doing all parts of your pipe, rollback otherwise.
If everything happens in a filesystem, and you have a filesystem that allows snapshots on demand, it's pretty easy as well. Make a snapshot, do whatever you're doing, and if it fails halfway, restore from your snapshot.
On a grander scale, if all your data is on a SAN, you might want to take a business copy. Then you suspend a copy, do your business, and either resync from the live copy or the suspended copy, depending whether there's success or failure.
But without knowing more about the programs you're running, I can't suggest anything more specific.
Note however that this problem of needing to be able to rollback isn't related to whether you manage to encode all the steps in a single URL. If the request would be in the body of a POST request, you'd have the same problem. Or if you'd write it in a Perl program without the web overhead.
In reply to Re: (OT) URL Pipes
by Perl Mouse
in thread (OT) URL Pipes
by Ovid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |