You could see your 'big' hexagon as having within it two smaller hexagons that represent how that particular solution is composed.
One for cloud search and one for DynamoDB. Which I think is okay if neither DynamoDB or CloudSearch are used independently anywhere else. The ports between CloudSearch and DynamoDB are on the internal faces as they don't affect the larger solution. Things that are used outside are on the external faces.
Then you could still swap out one of those smaller hexagons for one that supported the same combination of ports.
I don't know myself if that deviates too far from the spirit of hexagonal architecture though.
Yes, I see what you mean...
You could see your 'big' hexagon as having within it two smaller hexagons that represent how that particular solution is composed.
One for cloud search and one for DynamoDB. Which I think is okay if neither DynamoDB or CloudSearch are used independently anywhere else. The ports between CloudSearch and DynamoDB are on the internal faces as they don't affect the larger solution. Things that are used outside are on the external faces.
Then you could still swap out one of those smaller hexagons for one that supported the same combination of ports.
I don't know myself if that deviates too far from the spirit of hexagonal architecture though.
Hmm - That's interesting.
So you end up with:
It works. It feels quite complicated, but it works. :)