2 Punkte von click 2026-01-04 | Noch keine Kommentare. | Auf WhatsApp teilen

Ich fand Durable Streams ein großartiges Projekt und habe deshalb auch eine Implementierung in meiner Hauptsprache Java erstellt.

Wichtige Merkmale

  • Minimale Abhängigkeit von bestimmten Bibliotheken: Die Struktur wurde so gestaltet, dass sie möglichst nicht von einem bestimmten Framework oder einer bestimmten Bibliothek abhängt, gleichzeitig aber eine Standardimplementierung bietet und sich weitgehend anpassen lässt.
  • Für Virtual Threads optimiert: Nutzbar ab Java 17, empfohlen wird jedoch die Verwendung mit Virtual Threads ab Java 21.
  • Integration wichtiger JVM-Frameworks: Es werden Adapter für Spring MVC, Spring WebFlux, Micronaut, Quarkus und Ktor bereitgestellt. Anfrages-/Antwortkonvertierung und SSE-Verarbeitung passend zum jeweiligen Framework sind integriert, sodass sich alles mit nur wenigen Zeilen Konfiguration sofort nutzen lässt.
  • Besteht die Protokoll-Konformitätstests: Alle 131 Konformitätstests aus dem durable-streams-Repository wurden erfolgreich bestanden.

Hinweise

Der Dateisystem-basierte Storage verwendet Rocksdb zur Speicherung von Metadaten. Rocksdb hat kürzlich das Bereitstellungsmodell geändert: Statt eines Fat JARs mit Binärdateien für alle wichtigen Betriebssysteme müssen nun für jedes OS optimierte JARs über den jeweiligen Classifier direkt ausgewählt werden.
Wenn Sie daher den Dateisystem-basierten Storage verwenden möchten, müssen Sie rocksdb selbst als Abhängigkeit hinzufügen.

Beispiel

gradle

dependencies {  
    implementation("io.durablestreams:durable-streams-server-core:<version>")  
    runtimeOnly("org.rocksdb:rocksdbjni:10.4.2:linux64") // or win64/osx  
}  

maven

<dependency>  
  <groupId>org.rocksdb</groupId>  
  <artifactId>rocksdbjni</artifactId>  
  <version>10.4.2</version>  
  <classifier>linux64</classifier>  
  <scope>runtime</scope>  
</dependency>  

Noch keine Kommentare.

Noch keine Kommentare.