Implementing use cases with input ports
Input ports are a central element of the Application hexagon. They play a crucial integration role because it is through them that we bridge the gap between the Domain and Framework hexagons. We can get external data from an output port and forward that data to the Domain hexagon by using output ports. Once the Domain hexagon's business logic is applied to the data, the Application hexagon moves that data downstream until it reaches one of the output adapters in the Framework hexagon.
When creating the Application hexagon, you'll be able to define output port interfaces, but because there is no Framework hexagon yet to provide an output adapter as an implementation, you'll not be able to use these output ports.
You'll see output port declarations in the following code, but they are not being used yet. We're just preparing the Application hexagon to work when we have the Framework hexagon to provide the implementations...