My main pain is event lifecycle management. In summary, the database gets too big too fast and start getting slow. So, the app must rotate event database, even in disk, very quickly. We need to find an abstraction where the UI tells the core when it's ok to delete stuff. For instance, let's say the user has a Global feed for about 30 minutes and then leaves back to the regular follows feed. Most of the Global feed notes should be deleted. Save when the person visits a profile. The app loads a bunch of stuff into the database, but those events are irrelevant later and should be deleted. If you are doing a client that shows the latest note for each custom feed you have, like the list of people and latest messages of a chat client, you are loading and deleting stuff all the time.
And deleting stuffs also keep the database busy, which in turn make it slower Things seems ok as long as I query from indexed fields and not more than 5 posts at the same time. Have yet to find a good approach for deleting stuffs, if I delete the old stuffs my client will no longer query it because of the since field.