Skip to main content

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