A really simple rule of thumb is that you should only use a DTO object when you need to ... transfer data. That means use a DTO at the boundaries in your web API, or when you are sending the object on a message bus. Internally, just use your domain objects. The only reason a DTO should exist is the limitations of the (de)serialization layers. Those need ...


In the Microservices architecture, usually, you want the flexibility to deploy the services independently and this requirement leads you to have one container per service with all the dependency and environment necessary to run it. The default Java ecosystem is heavy to create cloud-native applications, but this is changing with projects like Quarkus and ...


You don't need docker in this instance. Tomcat is already a container running system which can run multiple seperate websites and apis


... however, since I have multiple workflows with multiple steps, I am assuming that the child state class instances will cause class-explosion for each step. Using the Decorator Pattern to inject the additional popup instruction could help avoiding such class-explosion in implement each and every state separately. In application demo, or introduction mode ...


Consider using embedded Tomcat inside your application instead of deploying your app in a Tomcat instance. I prefer this approach in general but it's definitely much more aligned with micro-service architectures and containers.

Only top voted, non community-wiki answers of a minimum length are eligible