Moleculer

Ein Microservice Framework für NodeJS.

Der ServiceBroker ist die Komponente welche das managen übernimmt.
Grundsätzlich erstellt man eine Instanz des Brokers, registriert Services und ruft diese auf.

Nachdem eine Broker Instanz erstellt wurde, lädt man die Services aus einem Verzeichnis.

Anschliessend können die Service in dieser Form aufgerufen werden.

Wenn der Broker einen Service aufruft, erzeugt er ein Context Objekt für den Request und übergibt dieses an den Action Handler des Services, params ist Teil des Context Objekts.

Der Broker hat einen Event Bus womit man Events lokal und global senden kann.

Als Beispiel kann der Broker alle Events empfangen die von Services ausgetauscht werden.

Es werden interne Actions zur Verfügung gestellt um den Status des Brokers abzufragen.

  • $node.services
  • $node.actions
  • $node.list
  • $node.health
  • $node.stats

Der Broker serialisiert die Daten als JSON und nutzt dazu das Modul serializer.
Ein anderes Modul sind die Transporter wenn Services auf unterschiedlichen Nodes laufen.

Ein Service der vom Broker verwaltet wird hat dieses grundlegende Schema.

Ein einfacher Service könnte so aussehen.

Der Service kann entsprechend aufgerufen werden, wenn der Broker instanziert ist.

Um unter Services Funktionalitäten wiederzuverwenden kann man Mixins nutzen. Dazu erstellt man eine separate Datei in der die Funktionalität definiert ist.

Ein Service kann dann entsprechend Funktionalitäten hinzufügen.

Services können sich mit Events benachrichtigen oder man kann über das Context Objekt mit dem Broker Services aufrufen.

Es existiert ein API Gateway um Services über HTTP oder HTTPS zur Verfügung zu stellen.

Dem Broker wird dazu ein weiterer Service hinzugefügt.

Der Service kann nun über einen URI referenziert werden.

Moleculer hat noch mehr zu bieten, das Projekt ist noch recht neu, einen Blick ist es wert.
Moleculer Homepage