Service Templates
Context
Microservices are being adopted. There are multiple teams, each responsible for their certain microservice(s). The teams enjoy full responsible for their microservices, including technological freedom and decision autonomy. Standards are introduced to govern the technological diversity.
Problem
- The technical diversity makes the system unmaintainable
- Introduced standards are not implemented
- It is hard to get started with a new microservice
- e.g., because you need to fulfill al the established standards
Solution
Provide a service template comprising of all standardized technology to enable a fast ramp-up of new services.
Service templates incentivize sticking to established standards due to the ease of starting out with new services. Deviation from the standard will cause extra effort to the teams since they need to implement the otherwise already provided and battle-tested functionality themselves, and thus is less likely to occur. New templates can be introduced but should be discussed and reviewed critically beforehand.
Maturity
Proposed, to be evaluated.
Sources of Evidence
L3:
- Polyglotness might lead to chaos and make it unmaintainable
- Service development templates as solution
- Different templates for different data stores
- Simple sample of correct implementation
- For different programming languages (in example Java and NodeJs)
- Each new template is examined by a senior developer to identify potential challenges
L12:
- Freedom in persistence and programming languages might lead to chaos and make the system unmaintainable
- Standards as solution to that problem
- Development templates for each leveraged language
- (+) easy to start developing
L31:
- Service template
- already handles calls to cross-functional services e.g. security
- (+) easy to get started with a new service
- (+) new developers don't need to have it on their radar
L44:
- in IoT context
- Component model for a microservice with various parts
- Secrity (orthogonal)
- SDK
- Event Hub
- Event Processor
- Task Scheduler
- Domain Logic
- Public API
- ...
- "Microservice core components" can be inherited from
- cross-service API calls for service data context exchange
- coordination
- remote service management