EventStore / EventStoreDB-Client-Java

Official Asynchronous Java 8+ Client Library for EventStoreDB 20.6+
https://eventstore.com
Apache License 2.0
63 stars 19 forks source link

Refactor internal connection code. #226

Closed YoEight closed 1 year ago

YoEight commented 1 year ago

Changed: Improve internal gRPC connection management for better error propagation.

Fixes #223

Major rewrite of how gRPC connections are managed internally. This new design allows exceptions like InterruptedException to be propagated even when they occur in the connection manager thread.

The public client method shutdown changed. It used to be void but now it's CompletableFuture<Void>. Technically, it shouldn't break user code unless they have enabled very pedantic compiler options.

However I deprecated the Endpoint type as using InetSocketAddress across the board was simpler and removed unnecessary allocations when converting Endpoint to InetSocketAddress.

Technically those breaking changes, while minor, warrant upping the major release number.

pvanbuijtene commented 1 year ago

Before merging, let's discuss how this should be mentioned in the release notes. /cc @ylorph

tambeau commented 1 year ago

Request review from Claude as we would like someone strong in Java to look at this.