Re: paper on Prevayler
Ralph Johnson <[email protected]> Thu, 7 Aug 2014 06:26:38 -0500
| Newsgroups | gmane.comp.java.prevayler |
|---|---|
| Message-ID | <CAB_aMcs_77heaZ216rNOto1JwkPb742Q-+7bMuMG4Ck6SPUJuw@mail.gmail.com> |
On Wed, Aug 6, 2014 at 5:11 PM, Justin Sampson <[email protected]> wrote: > > > Okay, got it. That actually sounds pretty close to how Fowler et > al. and the DDD community talk about "event sourcing," which I've > always thought of as fairly distinct from Prevayler's "arbitrary > Turing-complete transactions." The ability to encapsulate real > logic into an atomic transaction is one of the more appealing > features of Prevayler to me. Then again, supporting completely > arbitrary Turing-complete transactions is exactly what makes > determinism so hard, which is my biggest practical worry when > using Prevayler... Prevalence and event sourcing are similar and compatible, but prevalence emphasizes how things are persistent and is focused on implementation, while event sourcing emphasizes how you model the application domain. That is why the DDD community focuses on it. In practice, you do not want to write Turing complete transactions. Just like you don't want to write functions where it is impossible to tell whether they will halt or not. When I was in grad school, a group of us spent a semester reading some papers on Djikstra about "reverse execution", which for him meant a process of taking a (very small) program that computed a function and transforming it into a program that did the reverse. Neither he nor we were successful. Turing completeness reared its ugly head. Some years later I learned (from MacApp) about implementing undo on commands. Undo always seems easy in this context, because commands can just remember the original state. Reverse execution has gone from being impossible to easy. Transactions need to be short. For some applications, "short" might mean 1000 ms, while to others they are no more than 1 ms. But you need to be have an idea of how long they are. If you are really writing Turing-complete transactions then you can't bound their length. So, I wouldn't agree that Prevayler has arbitrary transactions. It has rules for transactions, but those rules allow pretty complex transactions. -Ralph ------------------------------------------------------------------------------ Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future. http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk _______________________________________________ To unsubscribe go to the end of this page: http://lists.sourceforge.net/lists/listinfo/prevayler-discussion _______________________________________________ "Databases in Memoriam" -- http://www.prevayler.org