I am trying to design the architecture of the friends finding and group creation service(the group creation system to be precise) of an Instant Messaging app with Android
as the client, Java
as the programming language ,Jersey
as my REST service, GlassFish 5
as my web service container and MongoDB
as the persistence.
The rules for group creation are as follows:
- A minimum of 3 initial invites are required to create a group.
- Users can send invitations to members of their friend list only.
- The group wont be created and a notification will be sent to the group creation request submitter, if at least 3 members hasn’t accepted the invitation within 2 weeks for group creation submission. (For example: I submit a group creation request by initially inviting 5 people today. But if after 2 weeks from today there isn’t at least 3 people who accepted the invitation, the group wont be created on the DB and I get a suitable notification).
Now, my initial plan is like this:
What I want to know is:
- Is this a good architecture design? What are it’s flaws and how to correct them?
- What are the various
Java
technologies that are required to implement this entire architecture?