At SurveySolutions we ended up with using shared lock during events readout from postgres. This solution is not the best, but good enough for us.
https://github.com/surveysolutions/surveysolutions/blob/5bc9...
It says "This mode protects a table against concurrent data changes" but it does not elaborate how. Is it similar in consequences to what MariaDB describes?
In our case - active data export process, will slow down a bit main application while reading new events.
Best solution would be using external tool to handle streams, like Event Store, Kafka or new RabbitMq Streams. But we prefer to stick with Postgres.