2 pontos por click 2026-01-04 | Ainda não há comentários. | Compartilhar no WhatsApp

Achei o Durable Streams um ótimo projeto, então também criei uma implementação na minha linguagem principal, Java.

Principais características

  • Dependência mínima de bibliotecas específicas: Estruturei o projeto para depender o mínimo possível de frameworks ou bibliotecas específicas, oferecendo uma implementação padrão que ainda permite bastante customização.
  • Otimizado para Virtual thread: Pode ser usado a partir do Java 17, mas recomendo utilizá-lo com Virtual thread no Java 21 ou superior.
  • Integração com os principais frameworks JVM: Fornece adaptadores para Spring MVC, Spring WebFlux, Micronaut, Quarkus e Ktor. Como já inclui conversão de requisição/resposta e processamento de SSE adequados para cada framework, dá para usar imediatamente com apenas algumas linhas de configuração.
  • Aprovado nos testes de conformidade do protocolo: Passou em todos os 131 testes de conformidade fornecidos pelo repositório durable-streams.

Observações

O armazenamento baseado em sistema de arquivos usa Rocksdb para guardar metadados. Recentemente, o Rocksdb deixou de fornecer um fat jar com binários para todos os principais sistemas operacionais e passou a adotar um modelo em que o jar otimizado de cada sistema operacional é escolhido diretamente via classifier.
Por isso, para usar o armazenamento baseado em sistema de arquivos, é necessário adicionar o rocksdb manualmente às dependências.

Exemplo

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>  

Ainda não há comentários.

Ainda não há comentários.