Standardized Microservice Requirements

Target releaseContiniuous
Epic
Document status
DRAFT
Document owner
Designer
Developers
QA

Goals

  • Provide a clear list of requirements that every microservice should abide to
  • Provide standardization among microservices
  • Improve future collaboration of microservice by standardizing it.

Background and strategic fit

This document is a list of requirements that each microservice needs to abide. This list will change over time but should always be implemented by every microservices (meaning changes in this list might require work on older microservices). This is done to make sure certain cross-cutting concerns, aspects of the system that are not related to a single area of the system and instead are present in nearly every area, have a single well thought out solution independent of the microservice in order to make the entire system more future proof.

Assumptions

  • Complying with these requirements would be the perfect state, it might be required by real world circumstances to (temporarily) not comply with these requirements
  • The registry and traefik microservices serve special roles in the system, they should abide to all the requirements unless deemed to be contrary to their functions.
  • Origin: The microservice that is the origin of an object, that stores the basic information of this object.
    • Examples: Member's origin is core.
  • Internal/External object: When referring to an object from a microservice's viewpoint it is considered an internal object when the viewpoint (microservice) is the origin (microservice), if the viewpoint is not the origin it is considered an external object.
    • Example: From the core microservice's viewpoint a Member object is internal, an Event object is external.
  • External roles: A role defined by an other microservice, likely unkown to the origin microservice
    • Example: Adding a 'trainer' role to a member

Requirements

#TitleUser StoryImportanceNotes
1Standard APIA microservice should abide the rules for the standardized APIMust have
2Microservice CommunicationA microservice should abide to the standardized communication protocolMust have
3Standard Object and Data Model A microservice should abide the rules for the standardized Object and Data Model Must have
4Standard PermissionsA microservice should abide the rules of the standardized permission systemMust have

User interaction and design

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Future releases

  • Move certain standard requirements to a separate microservice
    • For example the permission system.

Not Doing

  • Limiting the implementation language of a microservice