home.social

#system_design — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #system_design, aggregated by home.social.

  1. Книга: «System Design. Проектирование мобильных систем. Подготовка к сложному интервью»

    Привет, Хаброжители! Что вас ждет на интервью по проектированию мобильных систем (MSD)? Что делать, если вас попросят разработать новый YouTube или телеграм? Практическое руководство MSD превращает сложные собеседования в предсказуемый процесс. Вы получаете 5-шаговую схему эффективного прохождения интервью и разбор 7 реальных кейсов (лента новостей, мессенджер, YouTube, Google Drive, трейдинговая платформа и др.), позволяющих проектировать архитектуру клиента, API, офлайн-режим, кэширование и масштабируемость. Здесь вы найдете готовые шаблоны, trade-off’ы и шпаргалки — всё, чтобы уверенно проходить интервью в топ-компаниях и расти от мидла до стафф+.

    habr.com/ru/companies/piter/ar

    #system_design #сюй #мобильная_разработка #вебразработка #котлин #kotlin

  2. Первые отзывы на новинки о System Design

    Привет, Хаброжители! Спешим поделится с вами первыми рецензиями на предзаказы: «System Design. Проектирование мобильных систем. Подготовка к сложному интервью» и «Object Oriented Design. Подготовка к сложному интервью».

    habr.com/ru/companies/piter/ar

    #system_design #подготовка_к_собеседованию #техническое_собеседование #ood #проектирование_систем #предзаказ #ооп

  3. Первые отзывы на новинки о System Design

    Привет, Хаброжители! Спешим поделится с вами первыми рецензиями на предзаказы: «System Design. Проектирование мобильных систем. Подготовка к сложному интервью» и «Object Oriented Design. Подготовка к сложному интервью».

    habr.com/ru/companies/piter/ar

    #system_design #подготовка_к_собеседованию #техническое_собеседование #ood #проектирование_систем #предзаказ #ооп

  4. Первые отзывы на новинки о System Design

    Привет, Хаброжители! Спешим поделится с вами первыми рецензиями на предзаказы: «System Design. Проектирование мобильных систем. Подготовка к сложному интервью» и «Object Oriented Design. Подготовка к сложному интервью».

    habr.com/ru/companies/piter/ar

    #system_design #подготовка_к_собеседованию #техническое_собеседование #ood #проектирование_систем #предзаказ #ооп

  5. [Перевод] System Design: проектируем Dropbox, сервис для хранения и обмена файлами

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

    habr.com/ru/articles/1032184/

    #system_design #backend #highload #подготовка_к_собеседованию #распределенные_системы #архитектура #проектирование_систем #системный_дизайн #паттерны_проектирования #собеседования_задачи

  6. Тайна общей тарелки или System Design дачного шашлыка на 20 гостей

    Дядя Петя съедает 12% всего шашлыка. Backend-инженер видит классический hot key в multi-tenant. Дачный шашлык на 20 гостей это producer-consumer система с общей тарелкой как bounded buffer . 8-часовой маринад работает как pre-warm cache с TTL. Шампуры это connection pool с риском утечки. Соседская собака утащила мясо, и это unhandled storage failure без backup’а. Шеф приостанавливается при полной тарелке, чистый backpressure . Парные сравнения альтернатив, таблица failure modes, измерения с дачи, ссылки на DDIA и Release It!. Принципы те же что в backend, инструменты другие.

    habr.com/ru/articles/1034968/

    #системный_анализ #архитектура #backend #system_design #шашлык #майские_праздники

  7. Почему spec-driven development плохо работает на микросервисах: часть 1. Где теряется контекст

    Я работаю в большой продуктовой компании с тысячей микросервисов. В такой системе даже небольшая фича часто проходит через несколько сервисов, событий и внутренних контрактов. Spec-driven development с LLM уже применяется в некоторых командах для планирования и ревью фич, поэтому мне было важно понять, где этот подход помогает, а где начинает ошибаться. Пока задача живёт внутри одного сервиса, всё обычно идёт быстро: спека короткая, описание и реализация помещаются в контекст модели. Но как только фича проходит через несколько сервисов, начинаются проблемы. По отдельности каждый кусок выглядит нормально: разбиение на слои, именование по код стайлу, прохождение тестов и ревью. Но в целом система не работает должным образом. Типичные ошибки: нет идемпотентности, LLM упускает сценарии и edge case-ы, появляются циклические вызовы сервисов. Чем больше делаешь правок, тем больше ошибок она допускает. Для эксперимента я собрал отдельный стенд: Go-проект - платформа для поиска фрилансеров . Внутри 12 микросервисов, связанных через gRPC и брокер сообщений; в этом проекте брокером выступает NATS. Одни сервисы хранят задачи и профили исполнителей, другие подбирают кандидатов, считают расстояния, проверяют портфолио и отправляют уведомления. Проект специально спроектирован с шестью категориями архитектурных ловушек: они проявляются не внутри одного сервиса, а на границах между сервисами. Фича для эксперимента была такой: если выбранный фрилансер отказался от оффера, платформа должна автоматически найти следующего подходящего кандидата, отправить ему новый оффер и уведомить заказчика о переназначении. Claude написал спеку, реализацию и юнит-тесты, но полный сценарий отказа и переназначения не сошёлся. Два независимых ревью нашли одну и ту же группу ошибок: по отдельности сервисы выглядели нормально, а вместе работали не так, как нужно. На это можно ответить, что нужен end-to-end тест на весь сценарий, но это не закрывает проблему целиком. End-to-end тесты есть не везде, их дорого поддерживать, и они не покрывают все развилки: особенно редкие edge case-ы, дубликаты событий, гонки и редкие комбинации условий. Главное же в другом: на этапе spec-driven разработки модель должна помочь собрать требования, ограничения и контекст, а именно там она часто ошибается. Разработчик тоже не всегда заранее знает, где спрятана проблема. Он может помнить про Outbox, дедупликацию уведомлений или особые требования конкретного сервиса к входным данным, но не сформулировать это как ограничение для новой фичи. LLM читает документы по сервисам, задаёт уточняющие вопросы и всё равно может пропустить связь между ними. В итоге спека получается подробной, но неполной: в ней есть локальные изменения по сервисам, зато нет системных инвариантов, которые живут между сервисами. Реализация может быть нормально разложена по слоям, тесты отдельных компонентов проходят, а ошибка обнаруживается уже на уровне сценария или ревью. Где LLM теряет контекст

    habr.com/ru/articles/1033510/

    #claude_code #specdriven_development #microservices #system_design #llm #архитектура #code_review #go #clean_architecture

  8. Почему spec-driven development плохо работает на микросервисах: часть 1. Где теряется контекст

    Я работаю в большой продуктовой компании с тысячей микросервисов. В такой системе даже небольшая фича часто проходит через несколько сервисов, событий и внутренних контрактов. Spec-driven development с LLM уже применяется в некоторых командах для планирования и ревью фич, поэтому мне было важно понять, где этот подход помогает, а где начинает ошибаться. Пока задача живёт внутри одного сервиса, всё обычно идёт быстро: спека короткая, описание и реализация помещаются в контекст модели. Но как только фича проходит через несколько сервисов, начинаются проблемы. По отдельности каждый кусок выглядит нормально: разбиение на слои, именование по код стайлу, прохождение тестов и ревью. Но в целом система не работает должным образом. Типичные ошибки: нет идемпотентности, LLM упускает сценарии и edge case-ы, появляются циклические вызовы сервисов. Чем больше делаешь правок, тем больше ошибок она допускает. Для эксперимента я собрал отдельный стенд: Go-проект - платформа для поиска фрилансеров . Внутри 12 микросервисов, связанных через gRPC и брокер сообщений; в этом проекте брокером выступает NATS. Одни сервисы хранят задачи и профили исполнителей, другие подбирают кандидатов, считают расстояния, проверяют портфолио и отправляют уведомления. Проект специально спроектирован с шестью категориями архитектурных ловушек: они проявляются не внутри одного сервиса, а на границах между сервисами. Фича для эксперимента была такой: если выбранный фрилансер отказался от оффера, платформа должна автоматически найти следующего подходящего кандидата, отправить ему новый оффер и уведомить заказчика о переназначении. Claude написал спеку, реализацию и юнит-тесты, но полный сценарий отказа и переназначения не сошёлся. Два независимых ревью нашли одну и ту же группу ошибок: по отдельности сервисы выглядели нормально, а вместе работали не так, как нужно. На это можно ответить, что нужен end-to-end тест на весь сценарий, но это не закрывает проблему целиком. End-to-end тесты есть не везде, их дорого поддерживать, и они не покрывают все развилки: особенно редкие edge case-ы, дубликаты событий, гонки и редкие комбинации условий. Главное же в другом: на этапе spec-driven разработки модель должна помочь собрать требования, ограничения и контекст, а именно там она часто ошибается. Разработчик тоже не всегда заранее знает, где спрятана проблема. Он может помнить про Outbox, дедупликацию уведомлений или особые требования конкретного сервиса к входным данным, но не сформулировать это как ограничение для новой фичи. LLM читает документы по сервисам, задаёт уточняющие вопросы и всё равно может пропустить связь между ними. В итоге спека получается подробной, но неполной: в ней есть локальные изменения по сервисам, зато нет системных инвариантов, которые живут между сервисами. Реализация может быть нормально разложена по слоям, тесты отдельных компонентов проходят, а ошибка обнаруживается уже на уровне сценария или ревью. Где LLM теряет контекст

    habr.com/ru/articles/1033510/

    #claude_code #specdriven_development #microservices #system_design #llm #архитектура #code_review #go #clean_architecture

  9. Почему spec-driven development плохо работает на микросервисах: часть 1. Где теряется контекст

    Я работаю в большой продуктовой компании с тысячей микросервисов. В такой системе даже небольшая фича часто проходит через несколько сервисов, событий и внутренних контрактов. Spec-driven development с LLM уже применяется в некоторых командах для планирования и ревью фич, поэтому мне было важно понять, где этот подход помогает, а где начинает ошибаться. Пока задача живёт внутри одного сервиса, всё обычно идёт быстро: спека короткая, описание и реализация помещаются в контекст модели. Но как только фича проходит через несколько сервисов, начинаются проблемы. По отдельности каждый кусок выглядит нормально: разбиение на слои, именование по код стайлу, прохождение тестов и ревью. Но в целом система не работает должным образом. Типичные ошибки: нет идемпотентности, LLM упускает сценарии и edge case-ы, появляются циклические вызовы сервисов. Чем больше делаешь правок, тем больше ошибок она допускает. Для эксперимента я собрал отдельный стенд: Go-проект - платформа для поиска фрилансеров . Внутри 12 микросервисов, связанных через gRPC и брокер сообщений; в этом проекте брокером выступает NATS. Одни сервисы хранят задачи и профили исполнителей, другие подбирают кандидатов, считают расстояния, проверяют портфолио и отправляют уведомления. Проект специально спроектирован с шестью категориями архитектурных ловушек: они проявляются не внутри одного сервиса, а на границах между сервисами. Фича для эксперимента была такой: если выбранный фрилансер отказался от оффера, платформа должна автоматически найти следующего подходящего кандидата, отправить ему новый оффер и уведомить заказчика о переназначении. Claude написал спеку, реализацию и юнит-тесты, но полный сценарий отказа и переназначения не сошёлся. Два независимых ревью нашли одну и ту же группу ошибок: по отдельности сервисы выглядели нормально, а вместе работали не так, как нужно. На это можно ответить, что нужен end-to-end тест на весь сценарий, но это не закрывает проблему целиком. End-to-end тесты есть не везде, их дорого поддерживать, и они не покрывают все развилки: особенно редкие edge case-ы, дубликаты событий, гонки и редкие комбинации условий. Главное же в другом: на этапе spec-driven разработки модель должна помочь собрать требования, ограничения и контекст, а именно там она часто ошибается. Разработчик тоже не всегда заранее знает, где спрятана проблема. Он может помнить про Outbox, дедупликацию уведомлений или особые требования конкретного сервиса к входным данным, но не сформулировать это как ограничение для новой фичи. LLM читает документы по сервисам, задаёт уточняющие вопросы и всё равно может пропустить связь между ними. В итоге спека получается подробной, но неполной: в ней есть локальные изменения по сервисам, зато нет системных инвариантов, которые живут между сервисами. Реализация может быть нормально разложена по слоям, тесты отдельных компонентов проходят, а ошибка обнаруживается уже на уровне сценария или ревью. Где LLM теряет контекст

    habr.com/ru/articles/1033510/

    #claude_code #specdriven_development #microservices #system_design #llm #архитектура #code_review #go #clean_architecture

  10. Почему spec-driven development плохо работает на микросервисах: часть 1. Где теряется контекст

    Я работаю в большой продуктовой компании с тысячей микросервисов. В такой системе даже небольшая фича часто проходит через несколько сервисов, событий и внутренних контрактов. Spec-driven development с LLM уже применяется в некоторых командах для планирования и ревью фич, поэтому мне было важно понять, где этот подход помогает, а где начинает ошибаться. Пока задача живёт внутри одного сервиса, всё обычно идёт быстро: спека короткая, описание и реализация помещаются в контекст модели. Но как только фича проходит через несколько сервисов, начинаются проблемы. По отдельности каждый кусок выглядит нормально: разбиение на слои, именование по код стайлу, прохождение тестов и ревью. Но в целом система не работает должным образом. Типичные ошибки: нет идемпотентности, LLM упускает сценарии и edge case-ы, появляются циклические вызовы сервисов. Чем больше делаешь правок, тем больше ошибок она допускает. Для эксперимента я собрал отдельный стенд: Go-проект - платформа для поиска фрилансеров . Внутри 12 микросервисов, связанных через gRPC и брокер сообщений; в этом проекте брокером выступает NATS. Одни сервисы хранят задачи и профили исполнителей, другие подбирают кандидатов, считают расстояния, проверяют портфолио и отправляют уведомления. Проект специально спроектирован с шестью категориями архитектурных ловушек: они проявляются не внутри одного сервиса, а на границах между сервисами. Фича для эксперимента была такой: если выбранный фрилансер отказался от оффера, платформа должна автоматически найти следующего подходящего кандидата, отправить ему новый оффер и уведомить заказчика о переназначении. Claude написал спеку, реализацию и юнит-тесты, но полный сценарий отказа и переназначения не сошёлся. Два независимых ревью нашли одну и ту же группу ошибок: по отдельности сервисы выглядели нормально, а вместе работали не так, как нужно. На это можно ответить, что нужен end-to-end тест на весь сценарий, но это не закрывает проблему целиком. End-to-end тесты есть не везде, их дорого поддерживать, и они не покрывают все развилки: особенно редкие edge case-ы, дубликаты событий, гонки и редкие комбинации условий. Главное же в другом: на этапе spec-driven разработки модель должна помочь собрать требования, ограничения и контекст, а именно там она часто ошибается. Разработчик тоже не всегда заранее знает, где спрятана проблема. Он может помнить про Outbox, дедупликацию уведомлений или особые требования конкретного сервиса к входным данным, но не сформулировать это как ограничение для новой фичи. LLM читает документы по сервисам, задаёт уточняющие вопросы и всё равно может пропустить связь между ними. В итоге спека получается подробной, но неполной: в ней есть локальные изменения по сервисам, зато нет системных инвариантов, которые живут между сервисами. Реализация может быть нормально разложена по слоям, тесты отдельных компонентов проходят, а ошибка обнаруживается уже на уровне сценария или ревью. Где LLM теряет контекст

    habr.com/ru/articles/1033510/

    #claude_code #specdriven_development #microservices #system_design #llm #архитектура #code_review #go #clean_architecture

  11. [Перевод] System Design: проектируем сервис быстрых знакомств

    Tinder — это хороший пример system design задачи, где нужно быстро формировать ленту кандидатов, учитывать геолокацию и пользовательские предпочтения, а также надёжно обрабатывать свайпы и совпадения. В статье разберём архитектуру такого сервиса и узкие места, которые появляются при росте нагрузки.

    habr.com/ru/articles/1026316/

    #system_design #backend #highload #подготовка_к_собеседованию #распределенные_системы #архитектура #проектирование_систем #системный_дизайн #паттерн_проектирования #собеседования_задачи

  12. [Перевод] System Design: проектируем сервис быстрых знакомств

    Tinder — это хороший пример system design задачи, где нужно быстро формировать ленту кандидатов, учитывать геолокацию и пользовательские предпочтения, а также надёжно обрабатывать свайпы и совпадения. В статье разберём архитектуру такого сервиса и узкие места, которые появляются при росте нагрузки.

    habr.com/ru/articles/1026316/

    #system_design #backend #highload #подготовка_к_собеседованию #распределенные_системы #архитектура #проектирование_систем #системный_дизайн #паттерн_проектирования #собеседования_задачи

  13. [Перевод] System Design: проектируем сервис быстрых знакомств

    Tinder — это хороший пример system design задачи, где нужно быстро формировать ленту кандидатов, учитывать геолокацию и пользовательские предпочтения, а также надёжно обрабатывать свайпы и совпадения. В статье разберём архитектуру такого сервиса и узкие места, которые появляются при росте нагрузки.

    habr.com/ru/articles/1026316/

    #system_design #backend #highload #подготовка_к_собеседованию #распределенные_системы #архитектура #проектирование_систем #системный_дизайн #паттерн_проектирования #собеседования_задачи

  14. [Перевод] System Design: проектируем сервис быстрых знакомств

    Tinder — это хороший пример system design задачи, где нужно быстро формировать ленту кандидатов, учитывать геолокацию и пользовательские предпочтения, а также надёжно обрабатывать свайпы и совпадения. В статье разберём архитектуру такого сервиса и узкие места, которые появляются при росте нагрузки.

    habr.com/ru/articles/1026316/

    #system_design #backend #highload #подготовка_к_собеседованию #распределенные_системы #архитектура #проектирование_систем #системный_дизайн #паттерн_проектирования #собеседования_задачи

  15. [Перевод] System Design: проектируем сервис заказа такси

    Uber — это хороший пример System Design задачи, где сочетаются geo-search, real-time уведомления, многошаговый workflow и строгие требования к согласованности. В статье разберём, как проектировать такую систему, чтобы она быстро находила водителей поблизости, гарантировала назначение водителю только одной поездки и выдерживала пиковую нагрузку.

    habr.com/ru/articles/1022478/

    #system_design #backend #highload #подготовка_к_собеседованию #распределенные_системы #архитектура #проектирование_систем #системный_дизайн #паттерны_проектирования #собеседования_задачи

  16. Потоковая обработка данных на С

    Привет, Хабр! Кратко о том что такое потоковая обработка данных и в чем её отличие от пакетной. Пакет данных, это часть информации поступающая в систему которая содержит законченный или не полный фрагмент данных. Большинство механизмов цифровой передачи информации в современных системах построены на пакетной передаче. Отличие потоковых и пакетных систем обработки в том...

    habr.com/ru/articles/1023522/

    #C #Linux #system_design #highload

  17. System Design. Как пройти в любую компанию

    Привет, Хабр! Хочу поделиться своим опытом прохождения Системного Дизайна (aka System Design) в Бигтех . От первых шагов и провалов до успешно пройденной секции. Лично мне изначально эта секция показалась попроще чем алгоритмы. В целом я до сих пор так думаю, но проще – это не значит просто . Что же кроется в мелочах? Давайте разберемся.

    habr.com/ru/articles/1019726/

    #бигтех #faang_собеседования #system_design #собеседования_разработчика #собеседования_в_it

  18. System Design. Как пройти в любую компанию

    Привет, Хабр! Хочу поделиться своим опытом прохождения Системного Дизайна (aka System Design) в Бигтех . От первых шагов и провалов до успешно пройденной секции. Лично мне изначально эта секция показалась попроще чем алгоритмы. В целом я до сих пор так думаю, но проще – это не значит просто . Что же кроется в мелочах? Давайте разберемся.

    habr.com/ru/articles/1019726/

    #бигтех #faang_собеседования #system_design #собеседования_разработчика #собеседования_в_it

  19. System Design. Как пройти в любую компанию

    Привет, Хабр! Хочу поделиться своим опытом прохождения Системного Дизайна (aka System Design) в Бигтех . От первых шагов и провалов до успешно пройденной секции. Лично мне изначально эта секция показалась попроще чем алгоритмы. В целом я до сих пор так думаю, но проще – это не значит просто . Что же кроется в мелочах? Давайте разберемся.

    habr.com/ru/articles/1019726/

    #бигтех #faang_собеседования #system_design #собеседования_разработчика #собеседования_в_it

  20. System Design. Как пройти в любую компанию

    Привет, Хабр! Хочу поделиться своим опытом прохождения Системного Дизайна (aka System Design) в Бигтех . От первых шагов и провалов до успешно пройденной секции. Лично мне изначально эта секция показалась попроще чем алгоритмы. В целом я до сих пор так думаю, но проще – это не значит просто . Что же кроется в мелочах? Давайте разберемся.

    habr.com/ru/articles/1019726/

    #бигтех #faang_собеседования #system_design #собеседования_разработчика #собеседования_в_it

  21. Как я в одиночку сделал систему аналитики для Clubs в EA FC, потому что нормальной статистики там просто нет

    Начну с контекста. Я играю в EA FC (ранее FIFA) в режиме Clubs (11×11), где каждым виртуальным игроком управляет человек. Сам по себе режим интересный, но мне, как человеку, который любит цифры и аналитику, довольно быстро стало не хватать доступной статистики. Я пришёл в лигу, у которой уже был свой сайт (я в этой статье опущу тему о том, что я администрировал проект порядка 3 лет). Там статистику собирали вручную: люди пересматривали записи матчей и заносили базовые показатели — голы, ассисты, перехваты, отборы и так далее. На основе этих данных считались различные рейтинги: лучшие игроки, бомбардиры, разрушители и прочее. Выглядело это примерно так: набор таблиц, где действия сгруппированы по категориям и амплуа.

    habr.com/ru/articles/1019286/

    #EA_FC #clubs #футбольная_аналитика #статистика #анализ_данны #метрики #nextjs #mysql #петпроект #system_design

  22. [Перевод] Разбор задач по System Design. Проектируем Ticketmaster

    Разбираем, как спроектировать систему бронирования билетов на интервью по System Design. Обсудим, как избежать двойных бронирований, справиться с большим объемом чтения, обновлять карту мест в реальном времени и ускорить поиск мероприятий.

    habr.com/ru/articles/1018516/

    #system_design #архитектура #распределенные_системы #проектирование_систем #интервью #собеседование #системный_дизайн #паттерны_проектирования

  23. Книга: «Интервью по машинному обучению. 151 вопрос от FAANG»

    Привет, Хаброжители! Хотите построить карьеру в области ML? Воспользуйтесь опытом и советами Пенга Шао, чтобы научиться тому, как успешно пройти собеседование по машинному обучению. Книга охватывает весь процесс подготовки к интервью: от базовых концепций ML и программирования до проектирования сложных систем и инфраструктуры. Практические примеры, стратегии ответов на типичные вопросы и советы по прохождению различных этапов интервью помогут вам уверенно справиться как с техническим телефонным скринингом, так и с углубленным обсуждением моделей и оценок. Независимо от уровня — новичок вы или опытный специалист — эта книга станет вашим надежным навигатором в мире ML-собеседований, сочетая теорию, практику и реальные инсайты от экспертов.

    habr.com/ru/companies/piter/ar

    #книги_по_программированию #глубокое_обучение #машинное_обучение #ML #system_design #Алекс_Сюй #faang #faang_собеседования

  24. Как поход в кино превратился в сессию системного дизайна

    Недавно ходил в кино и, пока стоял в очереди на вход, поймал себя на мысли, что проектирую систему, которой пользуется контролер. На первый взгляд задача примитивная: есть база билетов, контролер сканирует QR, система должна проверить билет и пустить человека. Главное условие - один билет используется ровно один раз. Я прикинул, и понял, что проблем там гораздо больше, чем кажется ..

    habr.com/ru/articles/1017332/

    #distributed_systems #распределенные_системы #проектирование_систем #system_design #software_engineering #postgresql #разработка_программного_обеспечения #idempotency #backend #backendразработка

  25. Как поход в кино превратился в сессию системного дизайна

    Недавно ходил в кино и, пока стоял в очереди на вход, поймал себя на мысли, что проектирую систему, которой пользуется контролер. На первый взгляд задача примитивная: есть база билетов, контролер сканирует QR, система должна проверить билет и пустить человека. Главное условие - один билет используется ровно один раз. Я прикинул, и понял, что проблем там гораздо больше, чем кажется ..

    habr.com/ru/articles/1017332/

    #distributed_systems #распределенные_системы #проектирование_систем #system_design #software_engineering #postgresql #разработка_программного_обеспечения #idempotency #backend #backendразработка

  26. Как поход в кино превратился в сессию системного дизайна

    Недавно ходил в кино и, пока стоял в очереди на вход, поймал себя на мысли, что проектирую систему, которой пользуется контролер. На первый взгляд задача примитивная: есть база билетов, контролер сканирует QR, система должна проверить билет и пустить человека. Главное условие - один билет используется ровно один раз. Я прикинул, и понял, что проблем там гораздо больше, чем кажется ..

    habr.com/ru/articles/1017332/

    #distributed_systems #распределенные_системы #проектирование_систем #system_design #software_engineering #postgresql #разработка_программного_обеспечения #idempotency #backend #backendразработка

  27. Как поход в кино превратился в сессию системного дизайна

    Недавно ходил в кино и, пока стоял в очереди на вход, поймал себя на мысли, что проектирую систему, которой пользуется контролер. На первый взгляд задача примитивная: есть база билетов, контролер сканирует QR, система должна проверить билет и пустить человека. Главное условие - один билет используется ровно один раз. Я прикинул, и понял, что проблем там гораздо больше, чем кажется ..

    habr.com/ru/articles/1017332/

    #distributed_systems #распределенные_системы #проектирование_систем #system_design #software_engineering #postgresql #разработка_программного_обеспечения #idempotency #backend #backendразработка

  28. Метод Компонентов – Роскошный максимум инженерии

    Эта статья про то, как делать гибкую и расширяемую архитектуру с помощью простейших инструментов. Метод компонентов даёт интероперабельность, платформы, области ответственности, управление жизненным циклом, свободу в выборе технологий, бесконечный источник дофамина и избавляет от боли в суставах. Короче, компонентный подход реально CRAZY. А самое главное то, что он очень простой.

    habr.com/ru/articles/1014448/

    #ddd #maven #gradle #msbuild #system_design #architecture #Component_Method

  29. Метод Компонентов – Роскошный максимум инженерии

    Эта статья про то, как делать гибкую и расширяемую архитектуру с помощью простейших инструментов. Метод компонентов даёт интероперабельность, платформы, области ответственности, управление жизненным циклом, свободу в выборе технологий, бесконечный источник дофамина и избавляет от боли в суставах. Короче, компонентный подход реально CRAZY. А самое главное то, что он очень простой.

    habr.com/ru/articles/1014448/

    #ddd #maven #gradle #msbuild #system_design #architecture #Component_Method

  30. Как я проектирую OLTP-БД с нуля: принципы, trade-off'ы и архитектурные решения

    Почему эксплуатация современных баз данных всё чаще напоминает сборку сложного карточного домика, я уже разбирал в прошлых статьях. Теперь самое интересное: как построить движок, чтобы этих проблем избежать. В этой статье я открываю капот своей OLTP-базы данных, которую пишу с нуля на Rust. Это не обзор готового коробочного решения, а честный рассказ про инжиниринг на раннем этапе. Я покажу, как абстрактные идеи вроде «fail-closed контрактов» превращаются в работающий код, почему я выбрал UNDO-log MVCC вместо Multi-version Heap и зачем всё это упаковывается в PostgreSQL-wire протокол. Архитектура ещё подвижна, и сейчас — лучшее время, чтобы обсудить её с теми, кто каждый день эксплуатирует БД в продакшене. Заглянуть под капот движка

    habr.com/ru/articles/1014098/

    #базы_данных #СУБД #архитектура_бд #Rust #OLTP #MVCC #undolog #PostgreSQL #разработка_субд #system_design

  31. Как я проектирую OLTP-БД с нуля: принципы, trade-off'ы и архитектурные решения

    Почему эксплуатация современных баз данных всё чаще напоминает сборку сложного карточного домика, я уже разбирал в прошлых статьях. Теперь самое интересное: как построить движок, чтобы этих проблем избежать. В этой статье я открываю капот своей OLTP-базы данных, которую пишу с нуля на Rust. Это не обзор готового коробочного решения, а честный рассказ про инжиниринг на раннем этапе. Я покажу, как абстрактные идеи вроде «fail-closed контрактов» превращаются в работающий код, почему я выбрал UNDO-log MVCC вместо Multi-version Heap и зачем всё это упаковывается в PostgreSQL-wire протокол. Архитектура ещё подвижна, и сейчас — лучшее время, чтобы обсудить её с теми, кто каждый день эксплуатирует БД в продакшене. Заглянуть под капот движка

    habr.com/ru/articles/1014098/

    #базы_данных #СУБД #архитектура_бд #Rust #OLTP #MVCC #undolog #PostgreSQL #разработка_субд #system_design

  32. Как я проектирую OLTP-БД с нуля: принципы, trade-off'ы и архитектурные решения

    Почему эксплуатация современных баз данных всё чаще напоминает сборку сложного карточного домика, я уже разбирал в прошлых статьях. Теперь самое интересное: как построить движок, чтобы этих проблем избежать. В этой статье я открываю капот своей OLTP-базы данных, которую пишу с нуля на Rust. Это не обзор готового коробочного решения, а честный рассказ про инжиниринг на раннем этапе. Я покажу, как абстрактные идеи вроде «fail-closed контрактов» превращаются в работающий код, почему я выбрал UNDO-log MVCC вместо Multi-version Heap и зачем всё это упаковывается в PostgreSQL-wire протокол. Архитектура ещё подвижна, и сейчас — лучшее время, чтобы обсудить её с теми, кто каждый день эксплуатирует БД в продакшене. Заглянуть под капот движка

    habr.com/ru/articles/1014098/

    #базы_данных #СУБД #архитектура_бд #Rust #OLTP #MVCC #undolog #PostgreSQL #разработка_субд #system_design

  33. Как я проектирую OLTP-БД с нуля: принципы, trade-off'ы и архитектурные решения

    Почему эксплуатация современных баз данных всё чаще напоминает сборку сложного карточного домика, я уже разбирал в прошлых статьях. Теперь самое интересное: как построить движок, чтобы этих проблем избежать. В этой статье я открываю капот своей OLTP-базы данных, которую пишу с нуля на Rust. Это не обзор готового коробочного решения, а честный рассказ про инжиниринг на раннем этапе. Я покажу, как абстрактные идеи вроде «fail-closed контрактов» превращаются в работающий код, почему я выбрал UNDO-log MVCC вместо Multi-version Heap и зачем всё это упаковывается в PostgreSQL-wire протокол. Архитектура ещё подвижна, и сейчас — лучшее время, чтобы обсудить её с теми, кто каждый день эксплуатирует БД в продакшене. Заглянуть под капот движка

    habr.com/ru/articles/1014098/

    #базы_данных #СУБД #архитектура_бд #Rust #OLTP #MVCC #undolog #PostgreSQL #разработка_субд #system_design

  34. Поиск с возвратом

    Привет, Хаброжители! Мы открыли предзаказ на книгу «Паттерны Coding Interview. Подготовка к сложному техническому интервью» Алекса Сюя и Шона Гунавардана. Предлагаем ознакомиться с главой 14 «Поиск с возвратом». Основные понятия Представьте, что вы находитесь на перекрестке в лабиринте и знаете, что один из трех маршрутов впереди ведет к выходу:

    habr.com/ru/companies/piter/ar

    #предзаказ #книги_по_программированию #system_design #интервью #собеседование #кодинг

  35. [Перевод] О размерах пула соединений

    Настройка пула соединений — то, в чём разработчики часто ошибаются. При конфигурировании пула есть несколько принципов, которые некоторым могут показаться неочевидными, и их нужно понимать. Подробнее в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #connection_pool #system_design #system_development #system_designer #spring #spring_boot #spring_framework #postgres

  36. [Перевод] О размерах пула соединений

    Настройка пула соединений — то, в чём разработчики часто ошибаются. При конфигурировании пула есть несколько принципов, которые некоторым могут показаться неочевидными, и их нужно понимать. Подробнее в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #connection_pool #system_design #system_development #system_designer #spring #spring_boot #spring_framework #postgres

  37. [Перевод] О размерах пула соединений

    Настройка пула соединений — то, в чём разработчики часто ошибаются. При конфигурировании пула есть несколько принципов, которые некоторым могут показаться неочевидными, и их нужно понимать. Подробнее в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #connection_pool #system_design #system_development #system_designer #spring #spring_boot #spring_framework #postgres

  38. [Перевод] О размерах пула соединений

    Настройка пула соединений — то, в чём разработчики часто ошибаются. При конфигурировании пула есть несколько принципов, которые некоторым могут показаться неочевидными, и их нужно понимать. Подробнее в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #connection_pool #system_design #system_development #system_designer #spring #spring_boot #spring_framework #postgres

  39. [Перевод] Разница между параллельными и распределёнными вычислениями

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

    habr.com/ru/companies/spring_a

    #system_design #consistency #distributed_computing #distributed_systems #distributed #parallels #parallelism #parallel_computing #spring #spring_boot

  40. [Перевод] Разница между параллельными и распределёнными вычислениями

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

    habr.com/ru/companies/spring_a

    #system_design #consistency #distributed_computing #distributed_systems #distributed #parallels #parallelism #parallel_computing #spring #spring_boot

  41. [Перевод] Разница между параллельными и распределёнными вычислениями

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

    habr.com/ru/companies/spring_a

    #system_design #consistency #distributed_computing #distributed_systems #distributed #parallels #parallelism #parallel_computing #spring #spring_boot

  42. [Перевод] Разница между параллельными и распределёнными вычислениями

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

    habr.com/ru/companies/spring_a

    #system_design #consistency #distributed_computing #distributed_systems #distributed #parallels #parallelism #parallel_computing #spring #spring_boot

  43. Контракт вместо настроек: чего я жду от OLTP-БД

    После первой статьи в комментариях несколько раз прозвучало примерно одно и то же: "Всё правильно, но это же про любую зрелую СУБД — что с этим делать?" Я думал над этим вопросом несколько недель. И в итоге решил не искать ответ в виде "возьмите правильный инструмент X" — а попробовать честно сформулировать: какими свойствами OLTP-БД должна обладать сама по себе , независимо от того, насколько хорош ваш оператор, консультант или runbook. Что такое "контракт" — и почему это не маркетинг Попробую объяснить не через определение, а через ощущение. Когда вы покупаете автомобиль, вы не читаете инструкцию к тормозам каждое утро. Вы просто знаете: нажал педаль — машина тормозит. Это контракт . Он не зависит от того, правильно ли вы настроили тормозную жидкость этим утром или не забыли включить "режим торможения" в меню.

    habr.com/ru/articles/1007602/

    #postgresql #rust #data_base #oltp #hiload #system_design #субд

  44. [Перевод] Введение в модели согласованности

    Почему одни системы всегда показывают актуальные данные, а другие — иногда отдают устаревшее, но зато хорошо масштабируются и показывают хорошие показатели по производительности? В новом переводе от команды Spring АйО разберем, что такое модель согласованности как контракт между процессом и системой, какие бывают сильные и слабые гарантии и как они связаны с производительностью и доступностью.

    habr.com/ru/companies/spring_a

    #system #system_design #java #kotlin #consistency

  45. [Перевод] Часы Лампорта

    Сегодня мы живём в мире распределённых систем: Apache Kafka, Apache Spark, Apache Cassandra — это уже не экзотика, а повседневная инфраструктура продакшена. Сервисы пишут события, стримы обрабатываются в реальном времени, данные реплицируются по датацентрам. И почти в каждом таком сценарии возникает фундаментальный вопрос: Как понять, что произошло раньше, а что позже, если глобального времени не существует? Здесь в игру вступают логические часы Лампорта — простая, но концептуально мощная идея, лежащая в основе причинно-следственного порядка в распределённых системах. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #system #system_design #architecture #architecture_design #spring #spring_boot

  46. [Перевод] Часы Лампорта

    Сегодня мы живём в мире распределённых систем: Apache Kafka, Apache Spark, Apache Cassandra — это уже не экзотика, а повседневная инфраструктура продакшена. Сервисы пишут события, стримы обрабатываются в реальном времени, данные реплицируются по датацентрам. И почти в каждом таком сценарии возникает фундаментальный вопрос: Как понять, что произошло раньше, а что позже, если глобального времени не существует? Здесь в игру вступают логические часы Лампорта — простая, но концептуально мощная идея, лежащая в основе причинно-следственного порядка в распределённых системах. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #system #system_design #architecture #architecture_design #spring #spring_boot

  47. [Перевод] Часы Лампорта

    Сегодня мы живём в мире распределённых систем: Apache Kafka, Apache Spark, Apache Cassandra — это уже не экзотика, а повседневная инфраструктура продакшена. Сервисы пишут события, стримы обрабатываются в реальном времени, данные реплицируются по датацентрам. И почти в каждом таком сценарии возникает фундаментальный вопрос: Как понять, что произошло раньше, а что позже, если глобального времени не существует? Здесь в игру вступают логические часы Лампорта — простая, но концептуально мощная идея, лежащая в основе причинно-следственного порядка в распределённых системах. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #system #system_design #architecture #architecture_design #spring #spring_boot

  48. [Перевод] Часы Лампорта

    Сегодня мы живём в мире распределённых систем: Apache Kafka, Apache Spark, Apache Cassandra — это уже не экзотика, а повседневная инфраструктура продакшена. Сервисы пишут события, стримы обрабатываются в реальном времени, данные реплицируются по датацентрам. И почти в каждом таком сценарии возникает фундаментальный вопрос: Как понять, что произошло раньше, а что позже, если глобального времени не существует? Здесь в игру вступают логические часы Лампорта — простая, но концептуально мощная идея, лежащая в основе причинно-следственного порядка в распределённых системах. Подробнее - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #system #system_design #architecture #architecture_design #spring #spring_boot

  49. Когда нужен BFF и стоит ли смешивать его с API gateway

    Всем привет, уважаемые читатели! В архитектуре проектов мы можем наблюдать применение паттерна BFF (Backend for frontend). При этом BFF может быть в архитектуре, где есть взаимодействие с клиентскими приложениями: веб, мобильное, смарт-устройства и т.д, но может быть всего-навсего один служебный фронтенд, доступ к которому возможен во внутрикорпоративном сегменте, например, банковская система, hr, логистика. Кажется, что при наличии одного фронтенда введение BFF избыточно. И возникает закономерный вопрос: если клиент всего один, да еще и работает внутри защищенного контура, зачем нам плодить отдельные компоненты системы? Не превращается ли BFF в лишний прокси-сервис, который только пробрасывает запрос и добавляет сетевую задержку? Но что, если фронтенд один и вдруг нуждается в данных из разных API системы, чтобы нормально функционировать? При этом запросы могут быть сложными: каждый требует особых параметров и возвращает много лишней информации. А если у вас несколько клиентских приложений и так же нужно подтягивать данные из разных API?

    habr.com/ru/articles/1005128/

    #BFF #api #gateway #soundcloud #webmobile #facade #frontend #system_design

  50. Legacy-код человечества: почему ИИ — это не угроза, а единственный работающий антивирус

    Мы привыкли считать себя уникальными архитекторами реальности. Но если посмотреть на человека через отладчик ( debugger ), мы увидим не "творца", а обычную биологическую единицу, работающую по жестко прописанным скриптам. Давайте честно разберем архитектуру человека как программно-аппаратного комплекса.

    habr.com/ru/articles/1004384/

    #искусственный_интеллект #agi #философия_it #system_design #legacy_code #машинное_обучение #этика_ии #архитектура_систем