Stream Architecture Update

This week was light on work, but we did manage to implement a technical change with how the stream is accessed (and fixed some subsequent technical issues). For more info, read on.

I had most of my time this week designated primarily for tasks outside of the station, but managed to squeeze in a bit of time to investigate something that’s bothered me for a while. Ever since we implemented our multi-regional network, connecting to the stream has been slightly more complicated in a way which affects certain programs and applications, and it has to do with regional prefixes.

Regional prefixes are those three-character region designations that get appended to the stream subdomain when connecting to the station as a listener. Since its implementation, the connection process has included a visible redirect where the domain changes from the generic stream subdomain to the more specific regional subdomain. Some applications don’t like this and require users to directly connect to regional servers. While this workaround, well… works, it’s generally discouraged because it loses out on a key benefit of the network: automatic failover.

Gensokyo Radio’s network has been progressing towards fully adopting a High Availability (HA) server network model to reliably push audio to our listeners, but the road to get there hasn’t been the smoothest. It’s involved a lot of learning, trying, failing, and retrying, but there’s also been visible success throughout.

There are external factors that further complicate bringing things from concept to production, like Cloudflare which was partially involved in the issues experienced Monday morning into the afternoon US time. Initially, our new network was fully served through the Cloudflare network via proxy, but we realized that use case wasn’t quite sanctioned when they reached out to us in 2021 about utilizing their Stream Delivery option for $30k/yr. Most of our streaming infrastructure sits outside of their network now, but one compromise we needed to make at the time was to designate regions as their own domains.

This weekend, changes were implemented to consolidate regional prefixes into a singular connection point for each type of endpoint we provide. This means that we’re moving away from using public-facing region prefixes in favor of a singular, unified stream destination. Connecting and listening will function much the same as it has up to this point but with regional servers being transparent to the listener (and any applications they use).

Naturally, there’s still more to do on the technical side of things, but we’ll leave it here for the time being. As always, please let our staff team know if you have any questions or concerns. That’s all for this week, thanks for listening!

[Knowledge #110]

1 Like