<commit_before># Architecture

The RootIO application holds the database of record for the radio system.
Models are shared with the telephony server, which can be running on the same
physical system or separately. Currently a symlink between folders ensures that
models are kept in sync between applications, but git submodules would also work.

A separate Scheduler application is a message broker between the web interface 
and the telephony server. On commit signals from SQLAlchemy, 0MQ messages are
sent over an IPC socket to the scheduler, which either forwards them via TCP to
telephony, or delays them until a specified time. This decoupled communication
provides flexibility, at the expense of slightly higher intial setup.

The RootIO application should be run by Apache or other WSGI web server. The
Scheduler flask application must be run by the same user, so that IPC sockets
are readable by both parties.<commit_msg>Update architecture.md<commit_after># Architecture

The RootIO application holds the database of record for the radio system.
Models are shared with the telephony server, which can be running on the same
physical system or separately. Currently a symlink between folders ensures that
models are kept in sync between applications, but git submodules would also work.

A separate Scheduler application is a message broker between the web interface 
and the telephony server. On commit signals from SQLAlchemy, 0MQ messages are
sent over an IPC socket to the scheduler, which either forwards them via TCP to
telephony, or delays them until a specified time. This decoupled communication
provides flexibility, at the expense of slightly higher intial setup.

The RootIO application should be run by Apache or other WSGI web server. The
Scheduler application must be run by the same user, so that IPC sockets
are readable by both parties.
{'fraction_non_alphanumeric': 0.020933977455716585, 'fraction_numerical': 0.0010735373054213634, 'mean_word_length': 4.936305732484076, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2807364', 'n_tokens_mistral': 433, 'n_tokens_neox': 409, 'n_words': 289}