Brian Topping (22) [Avatar] Offline
#1
Regarding the future content of the book, I'm looking at the contents and wondering if any of the chapters will cover debugging actor systems? It's one thing to write exhaustive unit tests using TDD and code coverage tools, but with new teams, the burden of learning a framework can come at the expense of solid TDD. What other options do folks have for debugging in these situations?

OTOH, if exhaustive unit testing is the only answer to debugging actor systems, it would be great to have that highlighted. This would allow architects to "hit them with the book" when they don't listen smilie

Brian
roland.kuhn (39) [Avatar] Offline
#2
Re: Debugging actor systems
Yes, good point, I made a note so that this is not forgotten: in addition to verifying your components individually—which is quite powerful since they should be so loosely coupled—you will need to trace message flows through your system. This basically replaces step-through debugging in an asynchronous programming model.
Brian Topping (22) [Avatar] Offline
#3
Re: Debugging actor systems
Great! Hopefully Typesafe Console gets early props too. smilie

It just struck me in reading your response that it would be very interesting for Akka to provide a JDWP proxy (maybe as a part of Typesafe Console): The goal would be that the developer's IDE debugger would connect to the proxy, but the proxy would act as a debugging augmenter for setting up common debugging foo. One such magical augmentation would be the ability to simulate step-through debugging through JWDP automation of breakpoints as messages propagate through a system. This obviously gets tricky with the transitive closure of futures that comprise a complete transaction, but if it worked, it might move platform adoption by amazing amounts.

Of course, this could be done inside an IDE like Eclipse, but as an IntelliJ user, I'd be destroyed. Hence the goal of doing this in a proxy so all developers could benefit.
roland.kuhn (39) [Avatar] Offline
#4
Re: Debugging actor systems
> Great! Hopefully Typesafe Console gets early props
> too. smilie

I hope you are aware that the Console is being phased out (https://groups.google.com/d/msg/typesafe-console/MoGhs21U3IA/71QvHZhImXAJ) in favor of integration with 3rd party monitoring solutions on the production side of things and Activator Inspect for development purposes.

> It just struck me in reading your response that it
> would be very interesting for Akka to provide a JDWP
> proxy (maybe as a part of Typesafe Console): The
> goal would be that the developer's IDE debugger would
> connect to the proxy, but the proxy would act as a
> debugging augmenter for setting up common debugging
> foo. One such magical augmentation would be the
> ability to simulate step-through debugging through
> JWDP automation of breakpoints as messages propagate
> through a system. This obviously gets tricky with
> the transitive closure of futures that comprise a
> complete transaction, but if it worked, it might move
> platform adoption by amazing amounts.
>
> Of course, this could be done inside an IDE like
> Eclipse, but as an IntelliJ user, I'd be destroyed.
> Hence the goal of doing this in a proxy so all
> developers could benefit.

You might want to talk to Iulian Dragos (of the Scala IDE team), he has been working on something which sounds extremely similar to what you envision.