1 comments

  • 1103938364 2 hours ago

    Hello HN!

    I'm the author of SoakUpTheSun. This is an open-source visual assistance platform I built to connect visually impaired users with volunteers via real-time video (similar to "Be My Eyes", but open-source).

    I built this primarily to learn how to handle high-concurrency scenarios and heterogeneous microservices.

    Key technical implementation details:

    Custom SFU in Go: Instead of using standard media servers, I wrote a custom SFU using the Pion library to handle WebRTC signaling and RTP forwarding, aiming for <200ms latency even on weak networks.

    Hybrid Matching: To solve the "no answer" problem, I implemented a dual-track strategy:

    L1: Redis Hot Pool (Sets) for O(1) matching of currently active volunteers.

    L2: Elasticsearch fallback with Painless scripting to score offline users based on credit/activity.

    Concurrency: For the "Prize Redemption" feature (high concurrency), I used Redis Lua scripts + Redisson to ensure atomic inventory operations and prevent overselling.

    The backend is Java (Spring Cloud Alibaba), streaming is Go, and AI analysis (OCR/Object Detection) is Python.

    I'd love to hear your feedback on the architecture, especially regarding the Go SFU implementation and the matching logic.

    Repo: https://github.com/xxieyiqiang/soakupthesun

    Thanks!