normally its a good advise to have a properly model for your needs. Query Filter you find here:
When events are blowing up, I would propose to use some property like lastEvent and dont store events in your user model. Events are normally short lived data which will raise something and then vanish.
Also yes you can write your own controller.