<div dir="ltr"><div dir="ltr">Hi,<br><br>If I may ask, I have a question about actor-based systems design that arose while writing a simple system for integrating GitHub and Slack.<br><br>GitHub events are sent to a server using their Webhook API. We do some application logic on the events, and forward them to Slack.<br><br>So our architecture is unidirectional: messages are followed from the HTTP server to a sequence of processes until they finally get to a message dispatcher process that sends messages to Slack.<br><br>Message comes in, logic applies, message goes out.<br>The generic servers are very easy to test in a pure fashion: just test the return values of handle_call for a given state.<br><br>But:<br>- unit testing should test that the unit under test forwards a message to a given address (and that is not reflected on the handle_call return value)<br>- doing the integration testing of a "pipeline" of process involves testing that ultimately a message gets to the last process.<br><br>Given the maturity of Erlang, I'd expect to promptly find solutions to this case.<br><br>I haven't found a nice solution yet, so I suppose I am using OTP in a wrong way (maybe it's not a good fit for my project), or I am choosing the wrong architecture, or that I am missing key knowledge about how to test things in Erlang.<br><br>Can anyone shed some light on this questions? Thanks in advance!<br></div></div>