Skip to content

Conversation

@apenlor
Copy link
Owner

@apenlor apenlor commented Sep 12, 2025

Phase 2.0: Server-Sent Events (SSE)

This pull request marks the completion of Phase 2.0, which introduces server-to-client streaming and the GraalVM native executable. All work has been completed, including server-side implementation, containerization, frontend development, robust benchmarking, and final documentation.

Summary of Key Deliverables

  • SSE Endpoint: A new reactive endpoint at GET /stream/ticker is implemented in TickerResource.java, streaming JSON payloads every second.
  • GraalVM Native Build: A multi-stage Dockerfile.native is added to produce a minimal, secure, and fast-starting GraalVM native executable.
  • Side-by-Side Orchestration: The docker-compose.yml is updated to run both server-jvm and server-native services concurrently for direct comparison.
  • Frontend Refactoring: The demo-client has been architecturally refactored into a feature-based structure with a central navigation hub, and a new SSE demo page has been added to visualize the streams from both backends.
  • Robust Benchmarking Suite:
    • A new SSE benchmark is introduced using a custom-built k6 binary with the xk6-sse extension for accurate, native streaming tests.
    • All benchmark runner scripts (rest_benchmark.sh, sse_benchmark.sh, measure-startup.sh) are standardized to accept a logical service name (server-jvm or server-native) and use a reliable, shared Docker network for communication.
  • Architectural Refinements:
    • The Dockerfile.jvm is updated with an explicit ENTRYPOINT to ensure it is a portable, correctly configured artifact.
  • Documentation: The project's READMEs are updated to the "index" and "per-phase" model, with the v2.0-sse README now being complete and accurate.

Next Steps

Upon merging this PR, the v2.0-sse tag will be created to freeze this state, and the README.md on the main branch will be updated to its "index" role.

@apenlor apenlor self-assigned this Sep 12, 2025
@apenlor apenlor merged commit 652dfbe into main Sep 12, 2025
2 checks passed
@apenlor apenlor deleted the feat/phase-2-sse branch September 12, 2025 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants