Пятничное чтиво



Запись стрима уже на ютубе. За 2.5 часов сделали отзывы по компаниям для RubyJobs стриме + вытащили AST из rom relation для последующего создания ERD (entity-relationship diagram). Старые записи можно найти по ссылке. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму.



—————————————



Scalability concepts: distributed ID generation



Генерация ID - тривиальная задача если база одна и отсутствует распределенная система. Проблемы начинаются, когда генерация происходит в распределенной системе с несколькими тредами инкрементирующие значение ID и больше одной базы данных, в которых надо делать генерацию ключа. Автор статьи описывает 6 решений этой проблемы которые включают:



- Централизованную запись;

- Централизованную генерацию значений ID;

- Рандомное значение из большого разброса (по сути UUID);

- Привязка партишена к значению ID;

- Семантический ID;

- Скейлинг ID по географическому признаку;



Так же, автор описывает недостатки каждого из решений, упомянутых выше.



—————————————



UNIX pipes as IO monads



Сумасшедшая статья в которой автор доказывает сходство между монадами хаскеля и пайпами юникс систем. На самом деле я не знаю что еще написать касаемо этой ссылки. Вряд ли статья будет полезна в ежедневной работе, но заставит подумать о привычных вещах с другого ракурса.



—————————————



Retrying failed operations



Лонгрид, в котором автор описывает опыт повторного выполнения упавшего кода, связанного с данными в распределенных системах. Главная проблема, которую будет описывать автор - что делать, если надо синхронизировать данные с кучей сервисов и часть из этих сервисов будет работать как надо, а часть будет обрабатывать данные медленно или падать с ошибками. Для объяснения возможных решений автор сделает платформу, на которой будет показывать каждый из способов. А вариантов решения три:



- Real time retrying;

- Post event retrying;

- Tackling the problem;



Из описанных способов я использовал только первый и последний, причем последний оказался самым сложным, но при этом самым надежным.





——— одной строкой ———



- История совместимости rack и rails

- A collection of Ruby tools for enterprise and more, пока есть только реализация Stream API из джавы.

- Релиз Rails Event Store 1.0