worked on #197 (Use SQLite backend to store waiting engines and results instead of in-memory dictionaries)