Using Java EE 8 technologies
The backend system will comprise of REST APIs delivered as microservices. We will be using JAXRS for creating the web resources in each project and CDI as a dependency injection solution. While not strictly required, it is a popular choice of pattern. The project structure will make use of the Boundary-Control-Entity (BCE) or the Entity-Control-Boundary (ECB) pattern. The persistence layer will be written using the Java Persistence API (JPA) and the services will be stateless EJBs, which helps bolster scalability needs.
Defining the data model
Given the requirements, we can identify the following list of entities:
ims-issues
:Issue
is the work item that needs to be resolved by a userims-users
:User
represents the user of the IMS systemims-comments
:Comment
will represent the comments made on an issueims-chat
:Chat
is a single chat message that a user sends and getsims-chat
:ChatThread
groups the chat messages into a chain of messages
When developing each of these...