Besides being deterministic and serializable, what are the coding standards or restrictions my business classes have to obey?
None whatsoever. To issue commands to your business objects, though, each command must be represented as a serializable object. Typically, you will have one class for each use-case in your system. How scalable is object prevalence? The persistence processes run completely in parallel with the business logic. While one command is being processed by the system, the next one is already being written to the log. Multiple log files can be used to increase throughput. The periodic writing of the snapshot file by the replica does not disturb the “hot” system in the slightest. Of course, tests must be carried out to determine the actual scalability of any given implementation but, in most cases, overall system scalability is bound by the scalability of the business classes themselves. Can’t I use all those replicas to speed things up? All replicas have to process all commands issued to the system. There is no great performance gain, therefore, in adding replicas to command-intensive systems. I