Суть: есть основой скрипт, который формирует файл с базой (json) и несколько вспомогательных, которые раз в N секунд проверяют, не изменился ли файл и считывают его при необходимости.
Это работает, но архитектурно так себе. К тому же при попадании считывания файла во время его записи вспомогательные скрипты ловят исключение (невалидный json). Оно обрабатывается, конечно же, и через N секунд файл снова будет считан.
Какие есть варианты межпроцессного взаимодействия (речь именно о python)?
Следует учесть, что скрипты запускаются и на windows, и на linux, так что платформоспецифичные варианты не подходят.
Устанавливать mongo/mysql - крайний вариант.
Специфичность файла - каждая новая версия полностью заменяет предыдущие данные.
Опрашивать файл не надо, достаточно использовать inotify от самой ОС.
Под Python есть кросс-платформенные реализации отслеживания изменения файлов через inotify-like подсистемы. Отслеживающие скрипты будут ловить событие по итогам записи и закрытия файла, даже без коммуникации с основным процессом.
А так, скрипты могут взаимодействовать друг с другом как по HTTP (публикуя от себя маленький веб-сервер), так и по любому самописному RPC-протоколу поверх TCP или unix socket'ов.
Как самое простое решение можно положить json в sqlite, это не требует отдельного приложения, достаточно одного модуля.
Ещё можно использовать flock на файл (но это кажется работает не на всех системах) или создавать flag-файл после создания json, по наличию которого приложения будут реагировать на изменения (как вариант, можно реагировать на изменение таймстампа flag-файла).