Hinweis: Bei diesem Projekt handelt es sich um ein Forschungsprojekt der Hochschule der Medien, Stuttgart.
- Jede Gruppe hat ein eigenes Verzeichnis.
- Jede Gruppe stellt einen oder mehrere Microservices bereit. Jede Gruppe ist damit selbst für die eigene Systemumgebung verantwortlich.
- Entwickelt wird eine Event Driven Architecture. Die Kommunikation findet über Messages bzw. Events statt.
- Diese Events werden mittels Google PubSub übermittelt.
Für die Kommunikation zwischen den Modulen wird Google PubSub genutzt.
Über PubSub werden Messages
versendet. Wir sprechend jedoch häufiger von Events
.
Betrachtet die Messages
als eine Art Kapsel für ein Event
bzw. Synonym zueinander.
- Zugriff auf die PubSub, also Funktionen für das Senden & Empfangen kann über diesen GitHub Issue beantragt werden (Google Account benötigt).
- Die verfügbaren Topics (Kommunikationskanäle) werden über die
sharedLib
bereitgestellt. Näheres zur Verwendung findet Ihr in der Dokumentation. Werden zusätzliche Topics benötigt, können diese über einen neuen Issue angefragt werden. - Als Teil der
sharedLib
werden Euch Klassen zur Verfügung gestellt, um Events empfangen und senden (publish & pull) zu können. Falls darüber hinaus weitere Informationen benötigt werden, kann die ausführliche offizielle Dokumentation von Google PubSub genutzt werden. Die Dokumentation der SDK findet sich hier (Package: com.google.cloud.pubsub.spi.v1). Idealerweise werden Events jedoch nicht über Pull periodisch abgefragt, sondern werden von einem PubSub-Server via Push an den Empfänger gesendet (Jede Gruppe hat dazu einen individuellen Workshop erhalten).
-
AppEngine: PaaS. Publisher und Subscriber werden automatisch erstellt (wird durch Event-Gruppe zur Verfügung gestellt), Publisher kreieren eine PubSubMessage und versenden diese über PubSub im angegebenen Topic.
-
PubSub: verteilt PubSubMessages durch die Topics.
-
Publish: Eine Message wird in das eingetragene Topic veröffentlicht.
-
Subscribe: Mehrere PubSubMessages werden aus dem eingetragenen Topic als Stream übertragen.
Bitte die Vorgaben für die Klassen aus der SharedLib einhalten!
Topics können in den Issues beantragt werden!