Skip to content
This repository has been archived by the owner on Apr 13, 2022. It is now read-only.

Event application form service

Roman Levkovych edited this page Nov 19, 2021 · 4 revisions

Microservice architecture

image

PubSub is a local manager of topics that triggers required commands/queries. These data operations work with the same MongoDB and stores information about event application forms. SOLID complience is guaranteed. I tried to design a grasp compliant microservice. So all my classes will have low coupling and high cohesion. That’s why I have separate layer for communication with other services (controller) that consist of smaller classes, separate information experts (queries in diagram) and creators (commands in diagram)

Topics

Subscribed topics

  • Create form

  • Create Response

  • Edit form

  • Delete Response

  • Delete Event

Published topics

  • Event deleted

  • Response saved

  • Form saved

Use cases

  • User applies to event and proceeds to application form screen. They complete the form and completes the form. Then, the service receives a topic to create a form in db.

  • An event organizer goes through a list of possible volunteers. Then, he decides to open a volunteers form to check their responses.

  • A volunteer deletes their account. Then, all their responses are deleted from the service.

  • An organizer deletes an event. All responses are deleted.

  • An organizer creates an event. After filling an info about an event, the user proceeds to application form and creates a custom form for volunteer to apply.

  • An organizer edits a form and saves a new form. The microservice saves the new form and when a new volunteer applies to an event they will work with the updated form.

SOLID/GRASP compliance

I tried to design a grasp compliant microservice. So all my classes will have low coupling and high cohesion. That’s why I have separate layer for communication with other services (controller) that consist of smaller classes, separate information experts (queries in diagram) and creators (commands in diagram)

Created by Roman Levkovych

Last updated: Oct 27, 20211 min read