Standardized Microservice Requirements
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
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Standard API | A microservice should abide the rules for the standardized API | Must have |
|
2 | Microservice Communication | A microservice should abide to the standardized communication protocol | Must have | |
3 | Standard Object and Data Model | A microservice should abide the rules for the standardized Object and Data Model | Must have | |
4 | Standard Permissions | A microservice should abide the rules of the standardized permission system | Must have |
User interaction and design
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|
Future releases
- Move certain standard requirements to a separate microservice
- For example the permission system.
Not Doing
- Limiting the implementation language of a microservice