Java Hexagonal Architecture Design