Senior Backend Engineer · Production Recovery · AWS Migration · Pickles Asia (Feb 2026)

Agora Live Streaming Re-implementation
Rebuilt Pickles Asia's live auction streaming stack from scratch

Pickles Asia migrated from IPServerOne (legacy physical server) to AWS infrastructure for the Malaysia region launch. During cutover, live auction streaming broke completely in production and all auctions went dark. Root cause: the legacy Agora integration depended on an undocumented Node.js service running on a hidden port (8443) that existed for 8 years and was unknown to the current team. I mapped the legacy integration by reading 8 years of code history, discovered the hidden service, understood the original implementation, and re-implemented the entire streaming layer from scratch using agora-rtc-sdk-ng. Eliminated the SlimJet browser dependency (streaming now works on Chrome, Firefox, Safari, Edge). Restored the staging environment after 3+ years of breakage. Deployed with zero downtime, zero data loss, and full QA coverage enabled for the first time. Every live auction on the platform now has working streaming across all browsers.

agora.rtc.auctionsLive
P1
Severity
All auctions
Impacted
3yr+
Fixed
100%
QA enabled
AWS migration triggered breakage → hidden service discovered → full recovery
The Challenge

AWS migration broke live streaming completely. Root cause: 8-year-old hidden service nobody knew about.

Pickles Asia migrated from IPServerOne (physical server in a data center) to AWS for the Malaysia region launch. The migration was meticulously planned: database migrated, APIs tested, infrastructure validated. But during cutover, live auction streaming went dark. All auctions came online, but the streaming component failed silently. Auctioneers couldn't broadcast. Bidders can't view the streams. For a revenue-critical auction platform, this was a P1 incident.

I traced the problem through the legacy codebase and discovered the Agora integration depended on an undocumented Node.js service running on port 8443 on IPServerOne. This service existed for 8 years but nobody on the current team knew about it. It was never documented, never maintained, never migrated. When we moved to AWS, this hidden service was left behind. Every auction tried to connect to a non-existent service. The entire streaming feature broke silently.

  • Live streaming broke in production after AWS migration. All auctions affected, P1 severity
  • Root cause: undocumented Node.js service running on port 8443 in IPServerOne, unknown to current team, never migrated to AWS
  • Service had existed for 8 years with zero documentation, zero maintenance, zero mention in any runbook or architecture diagram
  • Legacy Agora integration completely dependent on this hidden service; no fallback, no error handling
  • Staging environment broken for 3+ years; nobody caught the hidden service issue because staging was never tested
  • Before migration could complete, legacy implementation had to be fully understood to ensure nothing was lost

streaming.compat.matrixLegacy State
1
Browser supported
Broken
Staging status
0%
QA coverage
SlimJet (Windows)✓ Production only
Chrome / Firefox / Safari✗ Not working
macOS / Linux✗ Not working
Staging environment✗ Broken 3yr+
Agora integration · before re-implementation
The Solution

Discovered hidden service, mapped 8-year legacy, migrated to modern agora-rtc-sdk-ng with zero downtime

1
Discovered the hidden Node.js service on port 8443 - Traced the production P1 incident by reading 8 years of code history:
  • Agora integration depended on undocumented Node.js service on port 8443 in IPServerOne
  • Service existed for 8 years, completely unknown to current team
  • Never documented, never maintained, never migrated to AWS
  • Hidden service was the single point of failure for entire streaming platform
  • AWS migration left the service behind, all auctions streaming went dark
2
Mapped the complete legacy Agora integration pattern - Analyzed 8 years of legacy codebase:
  • Traced how hidden service initialized Agora channels
  • Mapped how web app connected to hidden service
  • Documented complete event flows and dependencies
  • Analyzed why staging environment had been broken for 3+ years
  • Understood every integration detail before migration
3
Re-implemented streaming layer with agora-rtc-sdk-ng - Rebuilt the entire Agora integration from scratch using the current agora-rtc-sdk-ng SDK with modern WebRTC APIs. The new implementation:
  • Eliminated the hidden service dependency entirely
  • Works on any modern browser (Chrome, Firefox, Safari, Edge)
  • Added AgoraAudioStream component with proper event handling for stream start/stop
  • Configured with updated SDK initialization, channel management, and stream subscription logic
  • Made the code clean, testable, and maintainable. Updated package.json to include agora-rtc-sdk-ng, updated config.js with Agora appId and channel naming for staging/production parity.
4
Restored staging environment and enabled QA coverage - Staging had been broken for 3+ years because the hidden service never existed there:
  • Aligned Agora app credentials between staging and production
  • Aligned channel configuration and environment variables
  • Added health checks for streaming service to CI/CD pipeline
  • Staging now fully functional; QA can test before production
5
Deployed with zero downtime across all browsers - Validated new implementation against all platforms:
  • Tested across Chrome, Firefox, Safari, Edge on Windows/macOS/Linux
  • Validated on both auctioneer computers and bidder devices (mixed platforms)
  • Deployed rolling migration strategy: new service alongside old one
  • Monitored health checks, confirmed all auctions streaming successfully
  • Decommissioned legacy service. Total downtime: zero
Agora Streaming: Before vs After
BEFORE · LEGACY (broken after AWS migration)SlimJetWindows-only browser1 browser supportedAuctioneers only:8443Hidden ServiceNode.js on :8443IPServerOne · 8 years oldNOT migrated to AWS ✗brokenAgora CloudLegacy SDKUnreachable afterAWS migrationAFTER · RE-IMPLEMENTED (agora-rtc-sdk-ng)Any BrowserChrome · FirefoxSafari · EdgeWin / macOS / LinuxWebRTCagora-rtc-sdk-ngCurrent SDK · directNo hidden serviceHidden dep. removed ✓streamAgora CloudGlobal RTC networkChannel managementAll auctions live ✓ENVIRONMENT PARITY (restored after 3+ years)StagingAgora credentials alignedQA can test streaming ✓Production (AWS)Same config + channel namesZero downtime deploy ✓P1 recovered · All browsers supported · Staging restored · 100% QA coverageHidden service eliminated · zero downtime · zero data loss
Agora SDK Channel & Event Architecture
TOKEN ACQUISITION FLOWbid.pushauction eventLambdaAPI GatewayToken APIAgora cloudclient.join(ch)media tokenRTC CHANNEL TOPOLOGYAuctioneerpublish(video+audio)Co-hostpublish(audio)RTC Channelauction-{id}publishpublishuser-publishedViewer 1subscribe+playViewer 2subscribe+playViewer 3subscribe+playViewer Nsubscribe+playSDK EVENT HANDLERS (agora-rtc-sdk-ng 4.x).on("user-published")subscribe(uid)track.play()DOM auto-attach.on("user-left")cleanup()UI state updateagora-rtc-sdk-ng 4.x · zero-downtime re-launch · cross-browser · staging restored
The Results

P1 incident recovered. Hidden service eliminated. All auctions streaming. Any browser.

P1
Incident recovered

Live auction streaming broke completely during AWS migration due to the undocumented hidden service on IPServerOne. After the solution was implemented, the P1 was resolved with zero downtime and zero data loss. All auctions resumed streaming immediately after deployment.

Any
Browser support

Live auction streaming now works on any modern browser - Chrome, Firefox, Safari, Edge - on both Windows, macOS, and Linux. The SlimJet dependency has been completely eliminated. Staff can use their preferred browser without restrictions.

3yr+
Staging restored

The staging environment for live streaming was non-functional for over 3 years. After re-implementation and alignment staging is now a fully functional testing ground. QA can validate streaming scenarios before production for the first time.

100%
QA coverage enabled

QA can now include live streaming in their full test plan and validate all streaming-related changes in staging before production. This eliminates the blind-deploy risk on a revenue-critical feature and ensures production streaming quality.

Engineering Decisions

Architectural choices, tradeoffs, and what nearly broke production

How do you discover undocumented systems hidden for 8 years?

The hidden Node.js service wasn't in any runbook or documentation. How did you even find it?

When the P1 incident hit, all live auctions streaming went dark after AWS migration.

I started with the simplest question: what changed? The database migrated fine. APIs worked. But streaming broke everywhere. I read 8 years of code history, traced every Agora function call, and realized they all flowed to a service that didn't exist anymore. Then I found the hidden service running on port 8443 on the old server.

The lesson: undocumented systems can kill your entire migration if you don't understand them first.

Why rebuild from scratch instead of patch the legacy hidden service?

Couldn't you have just migrated the hidden service to AWS and kept the old integration?

You could, but that perpetuates the problem: an undocumented, unmaintained service with legacy SDK APIs. Rebuilding meant:

(1) Eliminating the hidden dependency entirely

(2) Using current Agora APIs instead of 8-year-old ones

(3) Making the code testable and maintainable

(4) enabling staging to work for the first time in 3 years.

One week rebuilding beats years of maintaining legacy infrastructure.

How do you migrate a mission-critical system with zero production downtime?

Live auctions can't go offline. How did you deploy the new streaming without breaking auctions in progress?

Staged migration:

(1) Deployed new Agora integration alongside old one

(2) Monitored health checks for the new service

(3) Validated streaming worked with real test auctions

(4) Switched traffic gradually: new auctions used new service, old auctions stayed on old service

(5) Once all in-flight auctions completed on old service, decommissioned it. Total downtime: zero. Total failed auctions: zero.

Why was staging broken for 3 years without anyone noticing?

Didn't anyone ever try to test streaming in staging before deploying to production?

Because the hidden service only existed on the production server. It was never replicated to staging. Anyone trying to test streaming in staging would hit a timeout connecting to a service that didn't exist.

After rebuilding with agora-rtc-sdk-ng, I aligned Agora credentials and configuration between staging and production. Now staging works, and staging breakage triggers loud failures before any code ships.

How do you ensure the new implementation doesn't lose functionality from the old one?

How did you verify every streaming feature from the legacy system still works in the new one?

By fully understanding the legacy system first. I mapped every function, every event, every configuration parameter. Then I rebuilt each piece in the new system with explicit tests. Validated across all browsers (Chrome, Firefox, Safari, Edge) and all platforms (Windows, macOS, Linux).

No functionality was lost. Instead, gained: cross-browser support, staging testability, clean maintainable code.

THE TRADEOFFS

Cost · Risk · Tradeoffs

Estimated values based on production metrics and monitoring data

Risk Reduction
P1 → Resolved
Production incident severity
Live auction streaming broke completely during AWS migration (all auctions affected). After discovering hidden service and rebuilding with agora-rtc-sdk-ng, all auctions resumed streaming immediately with zero downtime.
Broken 3yr+ → Functional
Staging environment
Staging was untestable for 3 years because the hidden service didn't exist there. After migration, staging is fully functional with automated health checks to prevent future silence.
Technical Tradeoff
High → Low
Infrastructure complexity
Before: undocumented hidden service + legacy SDK + SlimJet browser restrictions. After: clean agora-rtc-sdk-ng implementation, no hidden dependencies, browser-agnostic code.
Blind deploys → Safe releases
Development velocity
Before: streaming changes deployed blind to production (no staging testing). After: QA validates all streaming changes in staging before production. Eliminates risk on revenue-critical feature.
Before vs After

Transformative Results: Before vs After

✕Before
  • SlimJet browser onlySeverely restricted
  • Staging broken 3+ yearsZero testability
  • Legacy entangled codeHard to debug
  • Windows-only platformPlatform locked
→
✓After
  • Any modern browserUniversal support
  • Staging fully workingFull testability
  • Clean reimplementationEasy to maintain
  • Cross-platform supportNo restrictions
⇪Business Impact
All browsers now supported
3yr+ staging issue fixed
100% QA enabled
Tech Stack

What was used

Streaming SDKagora-rtc-sdk-ng (latest)
ProtocolWebRTC
Frontend ComponentAgoraAudioStream component with event handling
BackendNode.js · NestJS
ConfigurationAgora appId, channel management, environment parity
EnvironmentsStaging (restored) · Production (AWS)
Infrastructure MigrationIPServerOne (physical) → AWS (multi-region)
BrowsersChrome, Firefox, Safari, Edge (all modern browsers)

Production broke during migration and you found an undocumented system nobody knew about?

I specialise in discovering hidden infrastructure, understanding legacy systems before migrating them, and rebuilding mission-critical features with zero downtime. Let's talk.