BT

Characteristics of Microservices, Applications and Systems

| by Jan Stenberg Follow 38 Followers on Feb 28, 2015. Estimated reading time: 2 minutes |

Traditional assumptions about the way we build systems are challenged today; one of them is that a large system must have a single environment, often with a one-to-one mapping between a project’s scope and the system built, resulting in 1 project = 1 system, Stefan Tilkov explains in a presentation looking into characteristics of systems, applications and microservices.

Tilkov, co-founder and principal consultant at innoQ, sees the idea of splitting large systems into smaller applications appearing everywhere and for him the key reason for this is Isolation; when introducing a boundary between different parts in a large system it becomes harder to couple and communicate between parts that should be independent. Other advantages he sees are the possibility of individually scaling specific parts depending on their load and that decisions can be localized allowing for a team to make their own choices as long as they are kept within the boundary.

Looking into ways of building a logical system made up of smaller parts Tilkov compares three styles:

  • Microservices are small, each running in their own process, using lightweight communication mechanisms and built around business capabilities.
  • Applications (Apps) are larger but still small, separate, runnable processes, using a share-nothing model that share many characteristics with microservices..
  • Self-Contained System (SCS) was the name Tilkov and his colleagues came up with trying to avoid the generic System for naming a more specific set of rules. A SCS is a significantly larger autonomous web application including data and logic, owned by one team, using no synchronous remote calls, optionally with a service API.

Comparing some figures and characteristics of these three styles, Tilkov emphasizes that there is still no consensus what the right style is, instead his intention is to show the breadth and options available:

  SCS Apps Microservice
Size (kLoC) 1-50 0.5 - 10 0.1 - ?
State Self-contained External Self-contained
# per Logical system 5 - 25 >50 >100
Communication between units No, (if possible) ? Yes
User Interface, UI Included Included External (?)
UI Integration Yes (web-based) ? ?

The most interesting parameter for Tilkov is the number of parts building a logical system because it’s an indication of the first level of decomposition of a large system. Self-contained system is what he is advocating, noting that although small services are simple many of them together creates a higher degree of complexity in other layers, but he emphasizes that he’s not trying to sell one specific model but highlighting the discussions going on at various levels.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss
BT