At JavaZone I've presented a talk called Taming Java Agents.
It is not about the distributed computing or messaging as the title might imply. It is about the tools that exercise -javaagent
JVM argument to hook into class loading process
in order to perform some necessary evil to the bytecode. The tools can do amazing things to the application by rewriting the bytecode - performance
monitoring, class reloading
, etc. I think this is an interesting topic in general - the tools do not exist for no reason.
Here are the slides and the video from the talk: