MatrixAI / js-rpc

Stream-based JSON RPC for JavaScript/TypeScript Applications

Home Page:https://polykey.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Comprehensive integration and concurrent timeout tests for agnostic RPC system

tegefaulkes opened this issue · comments

Description

Investigate and handle the edge cases of concurrent timeouts in the RPC system across WebSocket and QUIC transports. Implement tests to verify the behavior of both client and server when timeouts occur simultaneously, focusing on hard and soft timeout limits.

Requirements

  1. Concurrent Handling: Address both client and server-side timeouts occurring at the same time.
  2. Transport Specific: Conduct tests for WebSocket and QUIC transport layers.
  3. Hard and Soft Limits: Establish and test hard limits on the server and soft limits on the client.
  4. Infinite Defaults: Handle and test cases where timeouts are set to infinite by default.

Tasks

  • Concurrent Timeouts Test: Implement tests to simulate and document the behavior when both the client and server time out simultaneously.
  • Client-Side Timeouts Test: Add tests and documentation for scenarios where the client times out first.
  • Server-Side Timeouts Test: Add tests and documentation for scenarios where the server times out first.
  • Hard and Soft Timeouts Test: Create and document tests to validate server-side hard limits and client-side soft limits.
  • Infinite Timeouts Test: Implement and document tests for default infinite timeouts on both client and server.

Acceptance Criteria

  • Successful demonstration of expected behavior when both client and server time out simultaneously.
  • Client-side and server-side timeout scenarios are accurately tested and documented.
  • Hard and soft timeout limits are validated and documented.
  • Default infinite timeouts are tested and can be manually overridden.

Low priority, will go to js-rpc.