When you think of streaming event brokers that support replay
which come to mind? You probably think of Apache Kafka...
but did you know that Solace supports replay as well? Do you want to see just
how easy it is to get started using replay with Solace?
Hi i'm Aaron, and i'm going to show you in less than two minutes!
First, make sure you've upgraded to the most recent version of the Solace broker
and log into the management console. Select the Message VPN that you wish to
configure replay on, and navigate to the replay tab.
Tell it to create a replay log, and specify the maximum size of that log in
megabytes. Click apply, and that's it!
Every Guaranteed or persistent message published into this Message VPN,
or every message published that matches a guaranteed endpoint will be stored in
the replay log for possible future use. Now without any
messages being published onto the broker right now, it's kind of hard to see the
replay in action. So let's take a look at an example.
On the queues tab, you'll see two queues automatically created by the replay, and
two queues that I've already pre-configured
for this example: q1 here is subscribed to topic "orders/new"
and q2 is subscribed to "orders/amend". So think of this as some kind of
e-commerce platform. So to simulate order event data
coming in, I can use the SdkPerf test tool (you can find it on our downloads
page) to be publishing on those two topics "orders/new"
and "orders/amend" in a round-robin fashion at the rate of five messages per
second.
I go back and look at the replay log you can see that indeed
those order events are being stored in there.
and back on the queue side, q1 and q2 are both receiving
those messages as well. Now, this is just for illustrative purposes.
Ideally I would have applications or microservices bound to these queues and
draining the messages out of them, you know one processing new orders, one
processing amends. But this is just an example and I want
to just keep those messages in there to show you. So let's consider the use
case of a late joiner application. So say there was
supposed to be a third application, maybe some kind of analytics
microservice, that was supposed to be deployed at the same time as these two
guys. It was supposed to receive all the order
data, not just new's, not just amends, but everything.
So this is actually a perfect example of what we can use replay for.
So first let's go ahead and create a queue for that third application,
we'll just call it q3.
Give it slightly larger quota than the other two since it's getting more data,
and now let's add a subscription for that q3
that will attract all of the order events: orders/*
so new's, amend's, and any future orders
that i might need.
You can see that q3 has started to receive data,
however it's missing some obviously because it was a late joiner.
So now that our queue is properly configured and subscriptions added to it,
we can initiate a replay request on it. So select the queue, go to action,
"Start replay". If i know the exact timestamp of when I
want the replay to begin, I can just enter it here.
or I can simply say replay for messages from the very beginning.
Click OK to confirm. And now my q3 has all the messages that
were published originally that q1 and q2 both already have.
So at this point, I could now start up my third application, my analytics
application, and bind it to q3 and drain all the messages out there as
if it had been online from the very very beginning.
So replay can be super useful, not for just late joiners and misconfigurations,
but things like restoring corrupted databases from their last known good
checkpoint, training algos tweaking them a little
bit and then restarting their message flow from the start of the day,
and you can initiate replays not just through the GUI tool the PubSub+ Manager
like we just saw, but also through SEMP, our fully
RESTful management API. Also our CLI
or command line interface. And if your applications are actually
developed using Solace messaging APIs like JCSMP,
they can actually initiate replay requests through
those as well. So lots of different ways of using a replay in Solace.
So check the description, I'll put a bunch of links to docs and resources.
Please like this video if you did, subscribe to our channel that makes me
really happy, thanks a lot for watching, and see you
next time!