Schon seit langem gilt in der IT das Prinzip der Modularisierung als überlegen gegenüber einem Monolithen. Insb. die Wiederverwendung wird dadurch drastisch verbessert und auch die Wartbarkeit steigt. In der Vergangenheit wurde dies zunächst durch den Einsatz von Software-Bibliotheken gelöst, die in verschiedene Projekte eingebunden werden konnten. Mit Software-Komponenten hat man dieses Prinzip weiter gestärkt und eine gemeinsame Laufzeitumgebung propagiert. Enterprise Java Beans oder COM+ sind Beispiele für Komponentenframeworks.

Ein weiterer Schritt bestand darin, die Komponenten auch Plattform-übergreifend zu vernetzen. Die Service-orientierte Architektur (SoA) war geboren. Trotz der richtigen Idee hatte die Umsetzung mit SOAP, WSDL und UDDI jedoch entscheidende Nachteile, so dass SOAP-basierte Webservices heute viele abschrecken.
Aktuell wird basierend auf RESTful Webservices und einer leichtgewichtigen Integration im Frontend der Microservice-Ansatz propagiert, der SoA-Ideen aufgreift, aber in vielen Bereichen neu startet. Während SOAP-basierte Webservices sich eher an die Maschine (sprich andere Anwendungen) als Konsumenten richten, fokussiert der Microservice-Ansatz den menschlichen Endbenutzer. Jeder Microservice bringt seine eigene Oberfläche mit, wird aber getrennt vom restlichen System deployed und kann daher auch getrennt aktualisiert und skaliert werden. Weiterhin kann die Frage nach der besten Systemarchitektur, Datenspeicherung und Programmiersprache für jeden Microservice separat entschieden werden. Polyglotte Landschaften werden als normal angesehen und übertriebene Vereinheitlichung als schädlich betrachtet. So setzt SCHub z.B. auf neo4j als Graphdatenbank für Apache Shindig, während alle anderen Systeme MySQL nutzen und es kommt OpenLDAP zum Einsatz, obwohl mit Apache DS auch eine gute Java-basierte LDAP Implementation vorhanden ist.
Die Frage nach der „richtigen Größe“ eines Microservices beantworten wir aber genau wie InnoQ eher im Sinne von nicht zu klein und da wir auf bestehenden Systemen aufsetzen, die z.T. auch eher monolithisch aufgebaut sind wie Liferay machen wir bei SCHub nur erste Schritte in die richtige Richtung.