These are chat archives for atomix/atomix
@mstennie some people have done performance testing, but I'm not one of them. While some work has been put into performance improvements, the focus has mostly gone towards usability and correctness.
As for state machine versions, this is something that has to be handled by the user. TBH it's something that would be a great addition to Copycat but doesn't exist yet. So, the way I would suggest dealing with versions is by creating a separate class for each version and adding a
version field to a base command for all state machine commands. In the actual
StateMachine implementation, read the version for each command and proxy the command to the correct state machine.
Of course, you'll probably want some state to be shared across versions as well, which can be handled by shared data structures.
I'm interested in making versioning happen in Copycat, though. I think my idea would be to add an optional
version field to
Operation and add some annotations for the state machine to annotate versioned command handler methods. But it would just be syntactic sugar for the same logic I just described.