We have a notion of a `Builder` - a class that gets notified of incremental changes to the workspace and can process those changes in a long-running job. That's probably what you'll want to use to index the sources (in some future PR). We're also looking at running some of our expensive operations (such as Dart analysis) on a isolate/worker. You'll likely be able to take advantage of that work.