TGViewer
2pegramming 2pegramming @pepegramming · 4.5K subscribers
Post #658 2.4K
Пятничное чтиво

Буду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.

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

Scaling ArchUnit with Nebula ArchRules

Статья от нетфликса, в которой инженеры делятся опытом решения проблем с обратной совместимостью совместимостью библиотек. А так как нетфликс использует джаву, то для решения взяли ArchUnit («тесты» для структуры проекта на джаве).

Текст начинается с проблемы: библиотека обновилась с breaking changes, из-за чего развалились сервисы на джаве. Как решение управления жизненным циклом библиотек выбрали archnunit, потому что работает поверх байткода (т.е. работает в jvm стеке), позволяет добавлять правила и содержит низкоуровневый API для сложных правил. В самом начале работы, инженеры, решили настроить работу с централизованным стором правил для проектов (чтобы не копировать правила из проекта в проект). Далее описывается как запускаются правила и как работать с артефактами библиотеки. В конце описываются некоторые примеры правил (безопасность, применение nullable аннотаций и так далее)

Отдельно отмечу, что в русском переводе встречаются комментарии от джава разработчика, который раскрывает части статьи для людей вне джава экосистемы. Отдельно упомяну первый комментарий (в тексте), где дается ссылка на реддит с обсуждением использования модулей, вместо archunit.

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

#archUnit #fitness_functions

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

A Field Guide to Alternative Storage Engines for PostgreSQL

Статья из серии «а что, так можно было?» (я не настоящий DBA). В 2019 году в 12 постгресе сделали table access method API. Предполагалось, что будут добавляться новые способы для хранения данных (колонки для аналитики, undo-log для OLTP и так далее). Автор текста выше решил написать, что из себя представляет экосистема.

Текст начинается с объяснения принципов работы API. Тут важно, что TAM API не является «настоящим» pluggable storage layer, только tuple-shaped abstraction. При этом, индексы тоже не работают. Ну и механизмы разбиваются на 4 группы:
- Heap replacements;
- Columnar;
- Lakehouse-backed (тут постгрес — интерфейс запросов поверх внешнего колоночного механизма);
- Специализированные TAM модели (тут автор упоминает три решения, одно связана с TimescaleDB и уже умерло).

Для каждой группы автор приводит примеры реальных проектов, кратко объясняя как TAM работает. А в конце делится советами по выбору подходящего TAM (если конечно решитесь).

#psql

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

Building a mental model for Stripe payments

Мне нравятся статьи в которых описывается реализация домена (8 лет жду аналога книги Фаулера). Статья выше — почти такая статья, потому что текст, в краткой форме, описывает принципы работы и объясняет работу стейт машины для PaymentIntent.

Начинается пост с примера: делаете магазин, доходите до страницы оформления заказа — начинаются проблемы. Как минимум, придется думать о взаимодействии с платежными системами, банком клиента, anti fraud процессах, соблюдении нормативов и так далее. Далее рассказывается о PaymentIntent объекте: намерение получить платеж от клиента. Сам объект отслеживает жизненный цикл платежа от старта и до конца (картинка с sequence diagram прилагается). Далее описываются пять этапов, через которые проходит платеж (оформление заказа, токенизация, аунтификация, capture и расчет со сверкой). В конце описывается, как работать с вебкухами страйпа, что бы знать что с платежом происходит.

Если устанете читать — на сайте сделали «терминал», где запускается змейка (вызывается на <c>).

#payments #domain_implementation
  • 👍 8
  • 🔥 5
  • ❤ 4
More from @pepegramming
  1. Sep 25, 2026Пятничное чтиво Буду рад предложениям, вопросам и идеям связанным с каналом или архитектур…
  2. Sep 18, 2026Пятничное чтиво Буду рад предложениям, вопросам и идеям связанным с каналом или архитектур…
  3. Sep 11, 2026Пятничное чтиво Буду рад предложениям, вопросам и идеям связанным с каналом или архитектур…
  4. Sep 4, 2026Пятничное чтиво Буду рад предложениям, вопросам и идеям связанным с каналом или архитектур…
  5. Aug 28, 2026Пятничное чтиво Буду рад предложениям, вопросам и идеям связанным с каналом или архитектур…
  6. Aug 21, 2026Третий поток «Коммуникации систем», старт 30 сентября В течение месяца будем искать формал…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →