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



На следующей неделе стрим, будем делать hanami API приложение с GraphQL. А старые записи можно найти по ссылке. Так же буду рад предложениям, вопросам и идеям. Можно написать в личку, а можно в анонимную форму.



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



Why Event Sourcing is a microservice communication anti-pattern



На канале уже упоминались статьи связанные с event sourcing (ES). А на ютуб плейлисте храняться две части стрима связанных с ES. Часто вижу проблему, что под ES подразумевают event driven architecture, что может быть ошибочно (подробнее в стримах). Сегодняшняя статья понравилась ровно из-за одной мысли: стоит различать публичные и приватные события для каждого сервиса. Это касается не только ES, но и даже банальных событий из web части в event consuming часть сервиса (в случае типичного rails приложения аналогом может быть web app и sidekiq как приватный транспорт обмена сообщениями). В практике видел как приватные события сервиса клали в публичную кафку и начался хаос, так как другие сервисы подписывались на эти приватные события. Поэтому идея на выходные - попробовать разделить события в системе на приватные и публичные, а так же посмотреть на связанность между сервисами основываясь на приватных сообщениях.



Также стоит посмотреть комментарии оригинальной статьи, там есть что почитать и засветился Scott Bellware, автор Eventide Project.



Русский перевод



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



3 Design Principles for Engineering Data



Данные и работа с данными - важно, поэтому, кроме написания кода, важно уметь работать с данными. Дата инжиниринг так же может быть полезен разработчиками, чтобы лучше понимать аналитиков и проектировать системы, которые изначально будут помогать дата инженерам получать данные из приложения. Поэтому желательно получить минимальные знания связанные с этой областью.



в статье найдете 3 принципа

- Gradual and Optional Validation

- Creating Data Lineage

- Immutable Data.



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



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



Ruby Concurrency Final Report



В рассылке уже публиковалась статья Samuel Williams связанная с прогрессом concurrency в руби. Сегодня последний отчет, требуемый для 2019 Ruby Association Grant. В статье найдете историческую справку и примеры использования non-blocking абстракций. Автор указывает ссылку на оригинальный тред в руби кор репозитории, который объясняет имплементацию и позволяет добиться результатов, описанных в конце статьи (спойлер - время не растет от количества запросов в не блокирующих вызовах). Отчет будет интересен, если следите за concurrency в руби.