Welcome to 'This Is My Architecture'.
I'm Lana from AWS and today, we're talking with Tim from Zixi. Hi, Tim.
Hi, thanks for having me.
Great to have you here. So, what is Zixi do?
So, Zixi provides a software platform for transporting broadcast-quality video
over the public internet or other IP networks.
So, how does the broadcast work
and how are you using Elemental Services as a part of it?
Sure. So, imagine you need to get video from a sports stadium,
you know, many camera angles, up to the cloud for processing.
So, what Zixi is doing is basically, you take your raw video from cameras
over to Elemental Live encoders, for instance, which has Zixi software built-in
and then from the Elemental Live encoders through a network connection
that's connected to the internet, the stream goes up to the cloud.
So, this could be Elemental MediaConnect services
or it could be Zixi broadcasters in the cloud
and so this is what this is doing is allowing you to contribute that video from on-premise
up to the cloud but completely using internet-based,
you know, resources, public internet instead of using satellite.
Great. So, I want to talk today about the architecture of the control plane itself.
So, the services on their own are encoding the data
but how do I manage configuration and latency and other aspects of streaming.
Yup, great question.
So, here we were talking about you know, the data flow which is the video.
So, you know, the users need to be able to control all of that remotely.
So within Zen Master, which is our SaaS-based control plane,
the user can remotely from a web-based interface
log in to their Elemental encoders that are on-premise and do all the configuration work.
They also can create configurations for Elemental MediaConnect
to receive those streams from the camera and then send those streams back out.
So all of this is, you know, it's done from, you know,
where remotely from within Zen Master,
I'm controlling everything that's happening either on-premise or in the cloud.
Great. So, we have configuration done, and we have the video stream that is being processed.
So, what kind of data are you storing in DynamoDB, let's say, versus Elasticsearch.
Right. So, just to go back to configuration.
So, we use RDS for storing all the configurations.
Dynamo is really used for the real-time status.
So, you know, imagine I have, you know, thousands of different video workflows happening,
you know, what's the current state of all the different pieces?
What's the state of the Elemental encoders.
What's the state of the MediaConnect flows?
What's the state of, you know, Zixi broadcasters that are running in the cloud on EC2.
So, this is where we're using Dynamo
just to capture all of that real-time state
and then, the user sees up from within the Zen Master interface.
They can see you know, the state of everything but also when things
you know, if something goes into an error-state for instance,
this is what allows us to have an alerting system
so that we can alert the user in real-time as well.
-Great. -That something in their workflow is not right.
So you have real-time feedback to fix something that might be going awry.
Yup.
And I'm also seeing that you're leveraging Elasticsearch.
Yeah, absolutely. So, Elastic is really for long long-term event storage.
So, you know, maybe a couple of weeks ago, you know, customer has a question about,
you know, maybe one of their recipients of a stream said the stream went down.
So, we can go into Elastic and look at all the events that were happening in that time.
And maybe we discover that someone you know pulled the ethernet cable out of an encoder.
And so of course at that point that encoder can't send it stream up
and it, you know, propagates down but with Elastic
and all the historical event logs there we can look back in the past
and figure out what was happening at that time to, you know, to help
the customer come up with an understanding of what happened.
Great. Tim, thank you so much for telling us today about how you're using Elemental Services
and also how you've built this control plane that allows you to store configurations, control latencies,
and also provide real-time feedback to the users.
And thank you for watching, 'This is My Architecture'.