You could query the event store directly, true, but that might make your process overly slow I think.
If this is an entirely separate component in your system which whilst performing this operation doesn’t obstruct the rest, I think it should be fine.
If it is however of the utmost importance for performance reasons to send out these events to downstream consumers, it might be worthwhile to consider a different approach.
It’s a little hack-y if you ask me, but you could put the payload revision in your events metadata if you want.
The upcasters in Axon Framework do have access to the entirety of the events info, thus also the revision number.
Added, you can also upcast the MetaData of a given event by adding a field.
Through this approach, you could forcefully introduced the payload revision to all your events their metadata, which you can then use to send over to the downstream consumers.
This could be a little overboard though.
Another option you might consider is to introduce a Query Handler which, based on an event identifier retrieves the payload revision of a given event.
I’d then have the downstream consumer, which apparently requires this information, query the payload revision upon receiving any event.
That way you decouple this requirement from the component which pushes the events to that consumer.
So, just some thought how to tackle this for now.
However, if there’s a way to overcome this requirement your downstream consumer has, I’d likely take that route as both approaches aren’t overly elegant I think.
That’s my two cents to the situation, hope this helps you out.