I'm pretty new to akka/actor systems and try to understand code which a colleague has written.
Doing this, I ask myself what kind of documentation would be helpful to get a faster understanding of the implemented "actor system".
As far as i understand so far, you need to understand at least two different perspective of the systems in order to understand it.
- The first is the static "creation hierarchy" which mainly defines the child-parent relationship between actors.
- The second is the dynamic "message/event flow" which mainly defines the exchanged messages between the actors. As a special case this one also includes realised finite state machines.
So, i wonder if there are common best practices on how to document an actor system:
- What kind of views should be documented?
- Are there recommended ways on how to structure the code (for instance reflecting the parent-child relation as package structure)?
- Naming conventions?
- Tools that are able to parse the code and provide some documentation?
- ...