I assume transaction support in the stack will be discussed in more detail with the release of the stack extension guide. However, I was wondering if I could get a few questions answered.
We are looking at building a PersistanceManager which would be fairly similar to the DataManager but with better ACID garuntees. We were thinking of using JDO to do that. (Aka litterly the PersistanceManager)… However, we would like to hide the transactional nature of it from the developer and bury it in the Manager implementation. Call it DurableManager for lack of a better name…
Will the stack API allow integration of additional transactional contexts. (Aka we want to use both the DataManager’s transactional context as well as the JDO transactional context at the same time). Using the DataManager for short lived non-shared state management and the DurableManager for long lived shared data management. (NOTE: This means that when a Task runs we would like to integrate the JDO’s transaction.begin() and when it finishes without an exception it would call transaction.commit() or if an exception was thrown it would call transaction.rollback() all behind the senes or in the manager implementation)…
What exactly are you trying to use the existing DataManager for in your system? It sounds like it will no longer be managing persistent data, so I’m not sure what role it’s playing. Put another way, why a new manager instead of a new implementation against the existing DataManager interface? Then you could just swap out our DataManager and any other games can use your new implementation. Also, can you qualify what you mean by “better ACID guarantees”? I’m curious what’s not being provided right now, and whether you think there’s something important that we should provide…