Complex software projects tend to grow increasingly chaotic over time. We are not living in a perfect world where relations between the entities that compose its logic and/or facilitate communication with the outside world are consistent. While looking into understanding hexagonal architecture as a candidate for one of our newer components for my team, I realized that the rules within it can be expressed as simple constraints. I started to investigate tools to provide that functionality. This is what I found and how we use it in the team.
Read full article here