Pretty simple question, but googling brought me nowhere: What is the purpose of input ports in the hexagonal architecture?
We are doing Java and seem to have some misunderstandings regarding the input part of this pattern. We presume:
- Domain Core / Business Logic: This part of the architecture describes our business and should be free of any framework specific / technical knowledge. It should be easily moveable from one technical infrastructure to another.
- Outbound Ports: Defined by the core and implemented by the outbound adapter this is classical dependency inversion principle, so that the core stays free of any adapter-internal / technical details.
But what is the purpose of the incoming port? Every article on the web mentions it but they are all lacking an explanation for its purpose. Why should I care about defining this port and not let the input adapter access my business logic "directly"? Why this abstraction?

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.