Thats a way bigger undertaking and decision then just optimizing a single query.
Like killing an ant with a Tsar Bomb.
The true "modern" cool kids solution would of course be to create a service that listens to WAL, inserts it into a Kafka cluster that is connected to a pipe for inserting into Elastic search. Much more fun and resumé friendly than optimizing a query. I bet the author of this blog would get a much larger audience.
Bonus points if the ingestion service was written in Rust and run on a serverless platform
You can switch the uuid generation, wait a little bit and add an.'archive' switch which will use the old and slower query when the date is old.
Should definitely be helpful resource wise for a lot of people
Otherwise it will cost more and more.
Especially for a chat app!