Вам уже удалось создать механизм учета, который удовлетворял бы вашим требованиям к целостности и согласованности финансовых данных. При этом должно быть возможным распараллелить обработку.
Вам понадобится
- новый компонент диспетчера, который будет отвечать за подачу в несколько потоков данных о событиях, подлежащих обработке, при сохранении согласованности (т. Е. Выставлять счета за каждое событие ровно один раз) и
- новый компонент-агрегатор для изменения рейтинговых событий на счетах.
Обычно компонент агрегатора становится узким местом в вашей параллельной архитектуре.
Поскольку вы явно намереваетесь создать многопоточное приложение: в зависимости от требований и среды может быть целесообразным создание многопроцессного проекта, т. Е. Иметь несколько независимых процессов, работающих параллельно. Вы получите более простую модель параллелизма по сравнению с вечной потребностью в межпроцессном взаимодействии.
Практически все телекоммуникационные биллинговые системы масштабируются с помощью многопоточности или многопроцессорной обработки, так что это определенно разумный путь вперед.