Performance

Open Stories and Issues

CurrentState() messages are probably causing OldUserSpaceSession to remain alive: This isn't critical until people are using the Arisia Volunteers Space hard, but has the potential to crash the server during Arisia itself, so it must be fixed!
Optimize the Read permission recalculation when a Space changes: This is currently wildly inefficient, and while I try to avoid premature optimization it seems likely to become a disaster for the Arisia Volunteers Space: with hundreds of people frequently modifying a Space with tens of thousands of records, it's likely to bog down.
Possibly rewrite the QL engine in terms of Reactive Streams?: Not necessarily literally akka-streams, or anything like that, but at least conceptually, turning the QL engine into a streaming one makes oodles of sense.
UserPersistence should all be asynchronous: Pretty much all functions here are MySQL calls, and thus relatively slow. They should all be getting performed on a separate, dedicated MySQL threadpool, and should all be returning Futures. (Or better yet, IO.)
When the gateway times out, it shows to the user as a "hang": For example, consider this page, which currently takes too long to render. This is causing the gateway to time out, but the error only shows in the browser Console -- from the user's perspective, the page just hangs forever.

Closed Stories and Issues

Displaying Titles in the Comics Space is way too slow: Unsurprising, since this is such a complex use of Computed Name and really deep QL expressions, but it takes freaking forever. This needs some serious profiling and optimization.
Spirit Island List of Playtests page runs extremely slowly: This page is taking too long to render, and is timing out before it finishes rendering.