Skip to content

microservices-thm-ss21/project-service

Repository files navigation

Project Service

Service responsible for managing projects and associated users.

Structure

  • A user is required to be logged in to send any requests to the project-service.

  • There are three different Member-Roles:

    • Admin: Every permission for the project.

    • Support: Same permissions as User.

    • User: Add members, change name of project, update issues of project.

  • The creator is automatically added with Member-Admin-Role and as Project-Creator

Tech-Stack

The project service is based on the Spring Framework with Webflux and Netty as its HTTP-server stack and ActiveMQ connections as message broker. The project service is connected to dedicated PostgreSQL database, where data is persisted.

Database / PostgreSQL

The database holds all information of projects, its members - users associated with a project, and existing user ids for data integrity.

HTTP API

The API is documented as OpenAPI Specification

To test the API please use the Postman collection.

Message-Broker / ActiveMQ

The service sends events when:

  1. microservices.dataEvents:

    • Project: Created, Updated or deleted

  2. microservices.domainEvents:
    Extended events with additional information when:

    • The role of a user changed (added, updated, removed)

    • The name of the project changed

The project service is listening to two ActiveMQ topics:

  1. microservices.dataEvents:
    This service is interested in creation and deletion events for users within the system to update its local table with user ids. All other events are ignored.

  2. microservices.sagaEvents:
    This service is interested in ProjectDeleteSagaEvents containing results of other services involved in saga transactions orchestrated by this service.

Saga

This service is the choreographer for a project deletion saga. Whenever it is requested to delete a project, it saves the data to be deleted and sends an event via "microservices.sagaEvents" - Topic. It subsequently awaits messages marking further steps ("chapters") within the saga.

Further Reading

Please refer to the README of the Orga-Repository for more information. This service uses the service-lib as a dependency.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •