Extended events provides a solution similar to client side trace. It basically can capture all events that a trace can capture (and more), and it also supports a wider choice of target types. And that, is where its true power lies.
It just so happens that Extended Events has a target type called “ring buffer“, and it gives us exactly what we need.
The ring buffer is easy to set up and if you don’t need permanence, works great.