Echtzeit- und ereignisgetriebene Systeme
- Kafka
- WebSockets
- RxJS
- Avro
- Java
- Spring Boot
- Reactive streams
Live-Daten lassen sich leicht vorführen und schwer ehrlich halten. Interessant sind die Fälle, die eine Demo überspringt: ein Consumer, der zurückfällt, eine Nachricht, die zweimal ankommt, ein Schema, das sich geändert hat, während ein Dienst noch das alte fuhr.
Wir bauen diese Systeme auf Kafka für dauerhafte Event-Streams, WebSockets für die Live-Kante, reaktiven Streams, damit Backpressure behandelt und nicht erhofft wird, und Avro-Schemata, damit Producer und Consumer nicht stillschweigend unterschiedlicher Meinung über eine Payload sind. Java- und Spring-Boot-Dienste auf Kubernetes tragen die Last, wo die JVM die richtige Antwort ist.
Das Ergebnis ist eine Oberfläche, die sich aktualisiert, während Ereignisse eintreffen, und eine Pipeline, deren Verhalten unter Last eine Entwurfsentscheidung ist und keine Entdeckung.