News for hackers. Stuff that matters.
Re:Should that be a microservice? Factors to keep in mind by edejong on Sunday April 21, 2019 @06:01AM (#19711391)
Microservice design (or rather, any good distributed design over multiple factors such as time, location, knowledge, structure, QoS, programming language) is dependent on the following criteria:

- Orthogonality: service X is independent of its requirements of service Y. Your mail client is not a web browser. Your payments platform is not a web-shop.

- Programming against interfaces. Your interface should be relatively stable over iterations, while your implementation can change.

- Comprehensible interface by short-term memory. This means the service/component does not entail more than, say, seven ‘items’. For example, an authentication service should not have more than seven concepts (token, credentials, state, resource owner and so on)

- Related to orthogonality: failure of this service should not entail (immediate) failure of another. This is akin to how the Arpanet was designed.

- No singletons. Services should not be designed in such a way that only one, and exacly one is running.

Follow these guidelines, and micro-service design becomes manageable and scalable.

There are no comments on this comment yet.