В последние пару недель, когда позволяло время, выдумывал разные способы устранения узких мест в SObjectizer-5. Несколько вариантов изменения механизмов хранения подписок и доставки сообщений до получателей рассмотрел с разных сторон. Один из них, тот, который показался самым жизнеспособным, решил зафиксировать в виде документа, дабы глупость говорящего видна был ;) По-хорошему, следовало бы это сделать в Wiki на SourceForge, но я не настолько владею английским, чтобы написать связный текст в несколько страниц.
Вот это описание. Выкладываю в общий доступ по двум соображениям.
Во-первых, кому-то это может быть интересно узнать, как actor model может воплощаться в жизнь на низком уровне. И, если мне повезет, кто-то найдет в моей идее недостатки или обратит мое внимание на более интересные варианты.
Во-вторых, в своей недавней заметке по поводу The Reactive Manifesto я дал совет брать готовые инструменты. Отчасти это пояснение данного совета. Стоит только взяться за разработку своего велосипеда, как оглянуться не успеешь и окажешься в такой же ситуации: есть работающий, оттестированный код. Но который нужно переписать. А вокруг других забот полно. Да и сам код со временем стал не таким уж тривиальным, и требуется некоторая осторожность, чтобы новое решение не поломало старый код. Вот и приходится семь раз отмерять, чтобы один раз отрезать именно там, где нужно :)
Примечание. В документе сделано верхнеуровневое описание, которое выглядит как вполне реализуемое. Но детальной проработке хотя бы на уровне псевдокода, не говоря уже о каких-то кусках реального кода не проводилось. Так что в реализации можно будет столкнуться с какими-то нюансами, которые были упущены из вида при проектировании.
PS. Когда появляется возможность заняться проектированием таких вещей, не могу отделаться от мысли, что я сам в себе убил хорошего инженера-программиста :)
Комментариев нет:
Отправить комментарий