Microservice overview

This page is designed to give a broad overview of the currently done, work in progress and planned microservices. When considering (starting) working on one of these microservices, use the discussion link provided to get more information about a microservice and voice your opinion.

Microservices

Color code:SuggestedAcceptedIn ProgressDoneRejectedOutdated


Microservice nameCodeResponsibleDiscussAPIDescription
Micro service example (and node version)EXAMPLE
Confluence - Development

An example module.

Responsibilities and functionalities:

  • Make the development of a new micro service easier.
    • Core registration example
    • Frontend display example
    • Retrieve core data example
CoreCOREDerk, NicoConfluenceAPI

The core module providing the very basics required for all other modules.

Responsibilities and functionalities:

  • General
      • Providing Single Sign-On (SSO) for all (new and existing) AEGEE online services using oAuth
  • General frontend
    • Render general frontend
    • Will eventually be moved away from core -  CORE-109 - Getting issue details... STATUS
  • Member management
    • Differentiate between member type: member, suspended, applicant
      • Offer an (member)application method
    • List, add, edit, suspend and group members
    • List, add, edit and delete groups (bodies)
    • Define permission roles
    • Assign roles to members and groups
Core-ElixirCORENico
API

A rewrite of the php core in elixir by Nico. Designed as a drop-in replacement for the core because core-development was stalled a bit due to personal reasons. 

Responsibilities and functionalities

  • Managing permissions and assigning them to members based on circle memberships and request context.
  • Grouping members by bodies and circles

Read more

Loginservice
Nico
API

Login and signup-functionality, separated from the core because Nico used it for another project.

Responsibilities and functionalities:

  • Providing authenticated users with jwt tokens for authentication in the rest of the system
  • Managing the sign-up workflow
Events (and frontend)EVENTSNico, SergeyConfluenceAPI

All event-related stuff. Creating, modifying, displaying and deleting events, approving events, managing events' organizers

Responsibilities and functionalities:

  • Managing events
    • Creating, listing, updating and deleting events
  • Managing lifecycles and events workflow
    • Creating, listing, updating and deleting lifecycles
    • Events lifecycle workflow (assigning a default event status, changing the event status)
  • Managing organizers
    • Adding and removing organizing persons and antennae
Applications (and frontend)
NicoJIRA - Issue

Everything related to the events' applications for the generic events (not statutory and not SU). Applying for the events, managing applications, approving participants.

Responsibilities and functionalities:

  • Managing the generic application process
    • Events application process
    • Participation listing
    • Participants selection by the organizers
    • Participants' evaluation for the event
    • Application comments by the organizers
Service registryREGISTRYNicoJIRAAPI

Helps with service discovery based on categories or servicenames and provides an access token registry.

Responsibilities and functionalities:

  • Provide a JSON interface to the current service setup
    • Get services by name or category
  • Register auth token for internal communication
    • Register and verify auth tokens
TraefikTRAEFIKNicoConfluence

Open-source reverse proxy for load balancing and health checking

  • Reverse proxy - Correctly route requests to the microservice that it is directed to
  • Health checks - Internal monitoring of the connected microservices and admin notification in case of connection problems.
LoggingLOG


Logging microservice for the entire system
AlastairFOODNicoConfluence

Food planning module - A private project from Nico

The Central Frontend
NicoConfluence
Joining the frontend pages of all services into one and serving it
LDAP support

JIRA - Issue

Notifications - castNOTIFYNicoConfluenceAPIReceives notification requests from services and casts them to notification providers
Notifications - onscreenNOTIFYNico
APIStores onscreen notifications which the user can fetch with a simple api call whenever he wants, no push feature
Notifications - emailNOTIFY


Probably just a wrapper around an existing service like sendgrid


Notifications - pushNOTIFY


Push Notifications

Cron Module

JIRA - issue
Regularily reoccuring tasks
Statutory microserviceSTATUTORYSergey
not there yet
  • Statutory events management
  • Application procedure for statutory events
  • Voting for statutory events
  • Proposals
  • Motions
  • Candidatures
  • Plenary attendance
Voting



Candidatures, Evaluation (like impact measurement for events), also Recursion (-;
Reporting



Generate anonymous reports with user and member statistics.
Survey

Requirements
Add survey/questionnaire support, integrating it within OMS
Finance



Fee management. Event budgeting. Parts of this are inside the core module at the moment, will be moved out of oms-core for this.
Storage



A possibility to backup data to external systems easily.
Travel



for example: AEGEE-couchsurfing
Gamification



E.g. create badges like "Visited 5 events" or "Attended 3 Agorae in a row"
Comments



Make commenting everything possible. Reuse of disqus might be the way to do it.
SU Webfrontend



Summer University Website: Will be a little different from the usual events frontend, maintained and developed by SUCT.

Roadmap

See the Project Plan for this.