TopMetaFizick_010, "архитектура" разрабатывается индивидуально под каждое приложение. На этот вопрос не может быть короткого, простого и единственно правильного ответа.
TopMetaFizick_010, из приведённого вами кода сложно понять execution flow, если вообще возможно. Проще всего погонять под отладчиком и посмотреть что, где и как выполняется. Если изменения действительно происходят из другого потока, то приложение может обвалиться в любой момент.
Михаил, на Heroku посоветую использовать PostgreSQL. На хостингах хоть и обычная файловая система, а потому можно применять SQLite, но лучше тоже использовать PostgreSQL.
Михаил, бывает полезно читать документацию. На Heroku файловая система временная. Платформа может в любой момент перезапустить инстанс вашего приложения, запустить несколько его копий или перекинуть его на другой сервак. Любой созданный файл, включая файл базы данных, при этом исчезает.