В процессе разработки нескольких Интернет-сервисов мы заметили, что значительная часть их функционала является общей, и руководствуясь принципом DRY (Don't Repeat Yourself — не повторяйся), приняли решение вынести общий функционал в отдельный модуль.
К модулю были предъявлены следующие требования:
- независимость от использующих его сервисов;
- простота «клиентского» кода;
- многопоточность и высокая скорость работы.