Relative Content

Tag Archive for aeron

Aeron Archive replay last N messages

Suppose I have a live recording. When I start a service with business logic I want to read last N messages, if they are available. How to do it? I do the following:

Aeron Archive determine the end of recording

I replay a recording using the Aeron Archive. How can I determine that the recording has ended? Is there a way to provide a callback which is triggered when the recording runs out of data? At the moment I use a simple heartbeat-style workaround which tracks the timestamp of the last message (measured by consumer) and if a timeout has passed I decide that there is no more data. This workaround looks unreliable: there can be many reasons why it didn’t receive data for a long time. What is the best practice of determining the end of recording?

Aeron Archive mark recording as inactive

I want to replay an existing recording. I follow the steps outlined here: https://theaeronfiles.com/aeron-archive/archive-operations. It is explicitly told that: “the Recording must not be active, so it must have stopped and have a stopPosition”. But what should I do if the archive was shut down disgracefully (e.g. via kill -9 or maybe the app crashed with seg fault)? Is there any way to mark this recording as not active to be able to extend it?

Aeron agents won’t stop until a SIGKILL is given

I have an aeron publisher and receiver service. Wrote it using springboot. I have added Shutdown hook Runtime.getRuntime().addShutdownHook with a thread signaling a ShutdownSignalBarrier to initiate a graceful shutdown.

Prevent duplicates from coming when aeron replay is complete

I am using aeron replay process to recover messages and then switch to real time feed to ensure continuity of messages. I am using a persistent map to keep track of sessionId/Channel/StreamId to last position and then ensuring my replay query starts from last position received. Replay seems to work good. But now I see that the transition from replay poll to regular poll is not working well for me. Mostly it could be the logic I am using and as a result I see few messages coming back again in the regular channel which I have received from replay channel.

How aeron cluster and aeron archive come together?

I am trying to setup a trading system, where I want to ensure that messages arriving on the leader process is getting replicated using Aeron cluster. But if I want to record them for replay, I can do it with Aeron Archive. But as I understand Aeron archive is not getting replicated. And so I believe it will reside on one side of the datacenter. If my cluster nodes run across datacenters, what will happen if my node failsover to secondary node which is in a different datacenter. Do I lose capability to replay messages which were recorded in the primary data center.