udpaeron

Two questions need to help about Aeron


ver: 1.42.0 deploy on: k8s

  1. In my business system, the absence of subscribers is a reasonable phenomenon, and sometimes there may be situations of backpressure. Does it mean that Aeron is not applicable to my business system?

  2. During the "publication.offer()", I occasionally get this error, I don't know how it came about?

const std::int64_t result = publication->offer(srcBuffer, 0, messageLen);
// the result equals -3 ( ADMIN_ACTION )
// Offer failed because of an administration action in the system
  1. Perfectly solving the problem of back pressure in my business system.
  2. Resolve errors generated during offer call.

Solution

    1. This does not mean that your application can't use Aeron, it means that you will need to decide what to do if back pressure occurs when trying to offer messages to the publication. Should you retry indefinitely, drop the message or store the message for delivery later. If 'store for later' is the approach that you want to go for, then you should look at recording the publication using Aeron Archive so that it can be replayed by the subscriber when it is available.

    2. ADMIN_ACTION occurs when the publication rolls over terms. A simple retry it generally the best option when this error is received. However, if you have any background work that you wanted to complete on that thread you could do that before publishing again.