gram news
Аватар канала 2pegramming

2pegramming

@pepegramming

Грустно об архитектуре и программировании. https://pepegramming.site Ответы на вопросы подписчиков: http://pepegramming.site/questions/

4,500подписчиков

Открыть канал

Последние посты

  • 2pegramming

    18 сент., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Как защитить платежный API от двойных списаний с помощью идемпотентностиСегодня еще одна статья об идемпотентности. В отличии от предыдущих, по ссылке выше, найдете больше технических деталей и реализации.Начинается текст с описания ситуации, когда сделали синхронный запрос в платежный сервис, а ответа не получили. По такой ситуации нельзя сказать, осуществлен перевод денег или нет, поэтому последующие запросы, без идемпотентности, рискуют повторно денег снять. Далее рассказывается, как сгенерировать ключ идемпотентности и почему хешировать тело запроса так себе идея. Вместо этого стоит передать генерацию ключа на сторону клиента. Далее рассказывается о трех
    9211221Открыть в Telegram
  • 2pegramming

    11 сент., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Who Does What? Team Topologies for the Agentic PlatformКогда начали появляться «роли» агентов, задумался о том, сколько времени понадобиться, что бы на агентов начали натягивать идеи из team topology. Прошло меньше года и сегодняшняя статья как раз об этом. Сразу скажу: не уверен, что идея взлетит, но забавно, что рандомные предположения начинают сбываться.Начинается текст с мысли, что в агентской разработке когнитивная нагрузка стала меньшей проблемой чем пропускная способность. Поэтому авторы решили взять TT для ответа на вопрос: как распределять нагрузку и ее «поглощать». Из ТТ сохраняются виды команд, подход «X as a service» и управлению когнитивной нагрузкой
  • 2pegramming

    4 сент., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————You Don’t Need Ordered Events, You Need Smart EventsСегодня еще одна статья о event-driven коммуникациях. Вместо обсуждения того, как дергать брокер, автор решил сфокусироваться на том, что должно быть в событии и как ордеринг обеспечить за счет данных в событии. Единственное о чем надо знать — текст специфичен для aws стека.Начинается текст с описания того, что должно по данным лежать в событии. Причем рассуждения касаются мета информации в событии, а не данных «бизнес-логики» (единственное, поспорил бы с автором о entityID и его формате). Далее затрагивается тема ордеринга, причем автор, вместо перекладывания ответственности на продюсер и брокер, предлагает
  • 2pegramming

    28 авг., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————What Is an Architecture Metamodel?Главная проблема диаграмм — сделать так, чтобы каждый понимал, что квадраты означают. С подобным «согласованием» схем помогает метамодель, т.е. легенда модели, объясняющая смысл. Статья выше рассказывает о том, что такое метамодель и какие элементы стоит указать в архитектурных моделях.Начинается текст с объяснения термина метамодели (какие типы объектов входят в модель и как они связаны между собой). Далее автор переключается на инфраструктурные модели, так как в инфре проще определить метамодель. После говорится о логическом уровне, где application может значить что угодно. Рассказывается о фреймворках (TOGAF и c4, при этом,
    1,980642Открыть в Telegram
  • 2pegramming

    21 авг., 10:32

    Третий поток «Коммуникации систем», старт 30 сентябряВ течение месяца будем искать формальные и функциональные связи (привет EventStorming и концептуальная модель данных), разбираться в характеристиках каждого из видов коммуникации, определять размеры событий и в каких случаях подойдет синхронный вызов, а в каких — асинхронный. Отдельный лонгрид посвящен миграции с одного вида коммуникации на другой и исправлению ошибок. А также поговорим о том, как «продавать» решения бизнесу и коллегам, а также в каких доменах подойдут event-driven (и другие виды) коммуникации.Будет полезно тем, кто работает с монолитами, так и тем, кто работает с распределёнными системами и планирует свои монолиты разобрать.- Если проходили АС — кроме разбора коммуникаций узнаете продолжение истории Ибрагима и раскрытие ряда тем из курса; - Если проходили АА — глубже разберетесь с коммуникациями и узнаете о
  • 2pegramming

    21 авг., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Enabling Evolutionary Architecture through the Preservation of Change LocalityКогда говорят об архитектуре, в 90% случаев подразумевают структуру/систему здесь и сейчас. На деле, техническая (да и социо-техническая) система постоянно развивается и эволюционирует. Даже придумали отдельное направление — evolutionary architecture, в котором система проектируется с учетом постоянного изменения. Статья выше как раз о таком подходе.Текст начинается с примера, когда команду попросили добавить изменение адреса доставки. Изначально предполагалось, что это небольшая фича которая превратилась в кросс командное взаимодействие и проблему границ системы. Через пример
    1,8408741Открыть в Telegram
  • 2pegramming

    14 авг., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————What is Systems Based Management?Пару месяцев назад решил найти авторов на substack, которые пишут о general system theory/system engineering/system dynamic. Оказалось, что подобного контента мало (который был бы мне интересен) и, из примерно 100 авторов, нашел только одного, чьи посты читаю регулярно (если знаете других — делитесь в комментариях). По ссылке выше как раз этот автор с мыслями о том, как думать о менеджменте системно. Сразу напишу, статья больше философская, чем практическая.Начинается текст с популярного предположения, что на результаты бизнеса влияет «функция индивидуальных качеств» (усилие, талант, индивидуальность и так далее). Вместо этого,
    2,12010532Открыть в Telegram
  • 2pegramming

    7 авг., 10:31

    Пятничное чтивоКанал выходит из отпуска. Буду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Evolutionary Database DesignЕсли говорить об изменении технической системы — рефакторинг базы данных попадает в личный топ 1 самых проблемных активностей. По этой причине приходится уделять много времени моделированию данных. Поэтому сегодня лонгрид от thoughtworks, в которой рассказывается как справляться с эволюцией базы данных.Текст начинается с примера, где необходимо из одной строки бд получить три. Далее авторы пишут вводную часть связанную с тем, что нужны эволюционные изменения нужно вносить контролируемо и вносить изменения итеративно. Плюс, авторы говорят об ограничениях у описанных подходов, связанные с multi-tenant
    2,260171211Открыть в Telegram
  • 2pegramming

    26 июн., 10:31

    Пятничное чтивоСсылки уходят в ежегодный летний отпуск на месяц с 1го июля. Увидимся в начале августа. Спасибо что читаете и пишете комментарии ❤️Буду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————How Spotify Recommends Your Next Favorite SongПомню, удивился, что в шазаме используются преобразования фурье для поиска песен. Сегодня статья тоже о музыке, точнее о том, как спотифай рекомендует треки.Начинается текст с объяснения collaborative filtering. Идея в том, чтобы создать матрицу с коэффициентами, основанных на том, как пользователь реагирует на треки (пропуски, повторения и так далее). После автор рассказывает о том, что к поведению пользователя добавляется «культурный» пласт. Тут парсятся блоги, тексты песен,
    2,7702195Открыть в Telegram
  • 2pegramming

    19 июн., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————How Netflix Maps Thousands of Microservices in Real-TimeОчередная статья о нетфликсе, в которой рассказано, как в компании решали технические проблемы. Сегодня текст о том, как в компании улучшали наблюдаемость системы, а именно строили граф связи сервисов. Для этого создали Service Topology, о которой и рассказывается в тексте.Текст начинается с описания мотивации компании: повторяющиеся вопросы о структуре распределенной системы от инженеров, которые систему чинили или меняли. Плюсом, полезно было бы сразу понимать, что заденет изменения в сервисах. Для этого решили собирать информацию с трех мест: eBPF network flow logs, IPC metrics (для эндпоинтов) и
  • 2pegramming

    12 июн., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Сколько стоит ваш техдолг: методики, цифры, российская спецификаВ канале раз 5 упоминались статьи связанны с тех долгом, например «вводная» статья упоминалась год назад (остальные статьи по тегу). Сегодня еще один текст о долге, только авторы решили посчитать «долг» в рублях.Текст начинается с объяснения, почему тех долг не видит бизнес и наоборот. Авторы связывают отчетность и фокус внимания бизнеса, куда не попадает техническая составляющая, не говоря уже о долге. Далее предлагается три способа подсветить долг бизнесу: прямые опросы людей, добавление тега «tech dept» в «джиру» и git churn (показывает процент перезаписанного кода за время). В конце предлагается
    2,4601861Открыть в Telegram
  • 2pegramming

    5 июн., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Scaling ArchUnit with Nebula ArchRulesСтатья от нетфликса, в которой инженеры делятся опытом решения проблем с обратной совместимостью совместимостью библиотек. А так как нетфликс использует джаву, то для решения взяли ArchUnit («тесты» для структуры проекта на джаве).Текст начинается с проблемы: библиотека обновилась с breaking changes, из-за чего развалились сервисы на джаве. Как решение управления жизненным циклом библиотек выбрали archnunit, потому что работает поверх байткода (т.е. работает в jvm стеке), позволяет добавлять правила и содержит низкоуровневый API для сложных правил. В самом начале работы, инженеры, решили настроить работу с централизованным
    2,240854Открыть в Telegram
  • 2pegramming

    29 мая, 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————A Promising New Metric To Track MaintainabilityСтараюсь пропагандировать ADD, где ключевая идея — принятие решений на основе характеристик. В случае с исчисляемыми метриками — вопросов нет. Сложности начинаются с «субъективными» и не исчисляемыми метриками, например с maintainability или modifiability. Поэтому сегодня статья, где предлагается математическую модель для расчета maintainability.Начинается текст с предположения, что coupling и cyclic dependencies помогут с расчетом, но, из-за вертикального и горизонтального разбиения, значения считать сложно. Как решение вводится понятие verticalization, благодаря которому, получается Maintainability Level через
    2,3501161Открыть в Telegram
  • 2pegramming

    22 мая, 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Seeing like a spreadsheetНадо признаться — я фанат таблиц (которые sheets). И с каждым годом больше и больше верю, что если бизнес модель нельзя описать в таблицах, то лучше два раза подумать, перед тем как связываться с таким бизнесом. Автор статьи описывает собственные размышления о том, как таблицы поменяли бизнес в америки.Начинается текст с того, как работали до появления таблиц: как страдали коммуникации и почему бизнес был чаще семейным. Далее появляются заводы, следовательно требования к контролю увеличиваются, что приводит к развитию инструментов координации. Но проблемы проверки и расчетов никуда не девались, что привело к появлению таблиц в 60-70тых
    2,61012101Открыть в Telegram
  • 2pegramming

    15 мая, 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Selective Test Execution at Stripe: Fast CI for a 50M-line Ruby monorepoОчередная статья, в которой компания описывает, как решала проблемы в технической системе. Сегодня страйп, который сделал один из самых больших руби монорепозиториев (50+ миллионов строк). А возникшая проблема — как перестать гонять миллионы тестов на каждый PR. Спойлер: написали собственный анализатор измененных файлов, на основе которого запускаются только нужные тесты. Мне тема интересна, потому что в топтале (когда я там работал), тесты гонялись полчаса в 60+ потоков. А для решения похожей проблемы для подобной проблемы использовались сети петри.Текст начинается с описания проблемы: 50к
    2,6201661Открыть в Telegram
  • 2pegramming

    8 мая, 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————How Instacart Built a Search for Billions of ProductsСтатья от компании instacart (аналог купера), в которой рассказывается о том, как решалась проблема поиска. Идея в том, что люди по разному ищут продукты. Запросы выглядят как «здоровые продукты», «соус для пасты 227г» и так далее. При этом, результат семантического поиска и поиска по ключевым словам должен соответствовать ожиданиям. Для этого, в компании, решили сделать два параллельных способа поиска, о чем в статье рассказывается.Текст начинается с описания проблемы с параллельными флоу поиска. Причем, особенность поиска в том, что товары быстро появляются и также быстро «пропадают» со склада. Для этого
  • 2pegramming

    1 мая, 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Why Root Cause Analysis doesn't work in Complex SystemsГлавная идея Root Cause Analysis — у каждой проблемы существует причина. Поймете причину — проблема больше не повториться. Звучит логично, но для «сложных» систем причины не явно связаны между собой, о чем рассказывает автор в статье выше.Текст начинается с объяснения идей и подходов из Root Cause Analysis. Тут найдете упоминание диаграмм Исикавы (если видели диаграммы в виде скелета рыбы — это оно). А также описываются «5 why?» и другие методы. Далее описываются недостатки RCA: наличие проблем возникающих из суммы причин, а RCA в такие проблемы не умеет. Эта мысль раскрывается через feedback loops, где
    2,41021621Открыть в Telegram
  • 2pegramming

    24 апр., 10:32

    Запустился шестой поток курса по анализу систем и принятию технических решений, старт 20 маяВ течение месяца будем учиться анализировать системы — определять элементы, связи и свойства (как системы, так и элементов). А благодаря анализу научимся обоснованно выбирать наиболее подходящее техническое решение. Если ждете выбор и работу с конкретными технологиями, подготовку к aws сертификации или подготовку к прохождению system design interview — курс не поможет. Вместо этого, акцент делается на мышлении, идеях, концепциях и как все складывается в одну картину.Что будет: - Работа с требованиями и стейкхолдерами; - Взрослый поиск элементов, основанный на бизнес стратегии (и зачем на самом деле нужен DDD); - Работа с характеристиками (их еще не функциональными требованиями или quality attributes называют) и внешними ограничениями; - Принятие решений по структуре, видам баз данных,
  • 2pegramming

    24 апр., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————Keeping a Postgres queue healthyСтатьи, связанные с реализацией очередей на постгресе, упоминались в канале еще шесть лет назад. Сегодня текст, который фокусируется на перфомансе очередей в инстансе постгреса, где содержатся основные данные.Начинается текст с описания проблемы: берем пг, в него пихаем очередь, а что делать с нагрузкой в таком случае не понятно. Причем, паттерн поведения в очереди строится вокруг того, что данные пишутся, единоразово читаются. А после, старые данные, необходимо удалить, чтобы база не распухала. Вот тут и начинается проблема, так как появляются dead tuples, т.е. записи, которые для базы «удалены» (запросы игнорируют данные), но в
    2,210921Открыть в Telegram
  • 2pegramming

    17 апр., 10:31

    Пятничное чтивоБуду рад предложениям, вопросам и идеям связанным с каналом или архитектурными/техническими вопросами. Можно написать в личку, а можно анонимно. А ответы на вопросы можно прочитать на сайте.—————————————The Myth of Individual Excellence: Why Systems Matter More Than Talent Addendum: The Myth of Individual ExcellenceСегодня две философские статьи по цене одной. Обе раскрывают идею: «хотите эффективности — думайте об изменении системы».Автор начинает с вопроса «почему компании с ресурсом так плохо достигают результатов?», что приводит к мифу индивидуализма. Точнее к тому, что результаты достигаются благодаря таланту, интелекту, труду и так далее. Но по итогу, рассуждения приводят к тому, что ответ сложнее и эффективность, в первую очередь, зависит от конкретной системы. Т.е. если в школе учитель будет тратить 90% времени на заполнение документов и 10% на обучение,
    2,46013311Открыть в Telegram