Compositional Architecture FTW

While doing a deployment of our Dovetail Carrier product our customer was having connectivity issues with their email server. We ran into situation where we needed prove that the product could connect and simply firing up an email client was not as good as proving that our code worked. The compositional architecture of Carrier allowed me to quickly build a little console application to detect email configuration problems.



Recompose It


Plucking the necessary pieces of code out of our application and recomposing a utility to solve the problem at hand was easy. Here is the gist of the console code.



Writing this code did not take long.



Lean on the container


Allowing the container to compose my types for me frees me from having to worry about minutia. There are other things going on behind the scenes that I don’t have to worry about. For better output I pulled in our logging infrastructure. Way better than writing to standard out.





Not really. A minute before I posted the console app to the customer figured out the problem was on their side. But had the mystery still been afoot we’d had a tool on our belt.