RustToMetal opened a new pull request, #4503:
URL: https://github.com/apache/iggy/pull/4503

   ## Which issue does this PR address?
   
   Relates to #4001
   
   ## Rationale
   
   The Swift SDK has the codecs and the protocol layer (#4355) but nothing that 
opens a connection. This is the next step of #4001: the client itself.
   
   ## What changed?
   
   The SDK could encode requests and decode replies but had no way to reach a 
server. `IggyClient` now owns one lockstep connection over SwiftNIO, with 
optional TLS through NIOSSL: it signs in, heartbeats, reconnects with the 
credentials that last succeeded, follows the cluster leader, and exposes the 
system, stream, topic, partition, segment, user, and token commands.
   
   A reconnect registers a new session, so only requests that provably never 
reached the log are replayed; a replicated write with an unknown outcome 
returns the error instead. Sending, polling, consumer groups, and offsets are 
not in this PR: the server now fences them on a partition context and a routing 
lookup, so they follow in the next one together with the end-to-end suite.
   
   Of the 3,591 added lines, 1,312 are tests. They run the client over real 
sockets against a scripted in-process server that speaks the consensus framing.
   
   ## Local Execution
   
   - Passed
   - Pre-commit hooks ran
   
   Run on macOS (Swift 6.4): `swift format lint --strict`, `swift build 
-Xswiftc -warnings-as-errors`, `swift build -c release`, and `swift test 
--parallel` (158 tests). `prek run --from-ref upstream/master --to-ref HEAD` 
passed.
   
   I also ran the client against `iggy-server` built from current master, plain 
and with TLS using the certificates in `core/certs`: sign-in, logout and 
re-login, token login, stream/topic/partition/user CRUD, reconnect after a 
password change, concurrent callers, and rejection of an untrusted and a 
mismatched certificate. Those checks are not part of this PR; the end-to-end 
suite and its CI lane come with the messaging PR.
   
   Not run locally: the Linux build, and failover against a real multi-node 
cluster (covered here by the scripted server only).
   
   ## AI Usage
   
   1. Claude Code.
   2. Implementation and tests were written with it, and it was used for a 
review pass against the comments on the earlier Swift PRs.
   3. The local runs listed above, including the real-server run.
   4. Yes.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to