Рубрика «distributed systems»
Из мобильной разработки в бэкенд. История и впечатления
2025-10-22 в 14:31, admin, рубрики: android, distributed systems, fullstack, iOS, базы данных, бэкенд-разработчик, карьера ИТ-специалиста, карьера программиста, мобильная разработка, смена стекаСамый простой и логичный способ — поменять направление внутри компании. Мог так сделать дважды, но тогда бы и писать было не о чем. Буду рад, если кому-то мой опыт окажется полезным или интересным.
В рамках статьи сеньора обозначим как разработчика, который получает сеньорскую зарплату и стабильный положительный фидбек от руководителя и других разработчиков в команде более года. Шире определял в другой статье.
Читать полностью »
Merkle-tree: Как проверить целостность данных без полного доступа?
2025-01-15 в 6:15, admin, рубрики: bitcoin, bittorrent, blockchain, distributed systems, guide, hash, hashing, merkle patricia tree, merkle tree, merkleproofКогда речь заходит о проверке целостности и неизменяемости данных, на помощь приходит хэширование. Например, если мы хотим передать файл по сети и убедиться, что он дошел до получателя без изменений, мы можем захэшировать его содержимое:
const verificationHash = SHA256(...fileContent);
И отправить хэш получателю, чтобы он мог проверить, что получил именно то, что отправлялось:
const receivedFileHash = SHA256(...receivedFileContent);
if (receivedFileHash === verificationHash) {
// Всё хорошо, хэши совпадают
} else {
// Внимание! Весь файл или его часть были изменены
}
Льем из Postgres в Elastic консистентно
2024-11-11 в 15:15, admin, рубрики: distributed systems, elastic, postgres
Осознаем проблему
Предположим, что у нас есть Postgres, Kafka и Elastic. В Postgres живет сущность, например, item.
Иногда возникает необходимость создать поисковый индекс отдельно от основной базы.
Например, если мы не хотим обрушивать поисковый трафик на Postgres мы можем вынести данные из него в Elastic.
Amazon S3 — детективное расследование внутренней архитектуры
2022-01-08 в 21:27, admin, рубрики: amazon s3, Amazon Web Services, cloud storage, distributed systems, Анализ и проектирование систем, архитектура, детектив, облачные сервисы, облачные хранилища, распределенные системыМне понравился опыт прошлого расследования по фейсбуку, и я решил организовать очередную серию, теперь про Amazon. Для нетерпеливых — в самом конце статьи описан итоговый вариант архитектуры Amazon S3 и проанализированы его свойства.

Не так давно Амазон объявил о переходе S3 с модели eventual consistency на strong consistency, то есть, предоставления гарантии read-after-write, чтения того, что было только что записано. Сообщество отреагировало, но как-то очень вяло: Amazon S3 Now Delivers Strong Read-After-Write Consistency
Первое, что лично мне подумалось в ответ на эти новости: а как же теорема CAP? Читать полностью »
Система под контролем: как автоматизировать интеграционные тесты
2020-10-29 в 13:21, admin, рубрики: automatization, distributed systems, docker, Go, integration testing, quality control, Блог компании Badoo, Программирование, Тестирование IT-систем, Тестирование веб-сервисов
Привет! Меня зовут Ксения Якиль. Я пишу core-сервисы на C и Go в бэкенд-отделе Badoo и Bumble. Наш бэкенд — это высоконагруженная распределённая система, обслуживающая пользователей по всему миру. Она оперирует большими массивами данных и делает всю ту магию, благодаря которой люди находят друг друга.
Эксперимент VTrade. Часть 3: Книга ордеров. Обработка и хранение торговой информации
2019-12-27 в 14:37, admin, рубрики: bid-ask spread, distributed systems, erlang, financial exchanges, order book, Анализ и проектирование систем, Программирование
В прошлой статье цикла мы познакомились с типами биржевых заявок. Сегодня мы разберем книгу ордеров, обработку заявок и вопросы связанные с организацией хранения торговой информации.
WG Contract API: zoo of services
2019-02-26 в 9:19, admin, рубрики: api, distributed systems, Gamedev, systems design, wargaming, Анализ и проектирование систем, Блог компании Wargaming, микросервисы, проектирование систем, разработка игр, распределенные системы
С ростом количества компонентов в программной системе, обычно растёт и количество людей принимающих участие в её разработке. Как следствие, для сохранения темпов разработки и простоты сопровождения, подходы к организации API должны стать предметом особого внимания.
Если хотите познакомиться поближе с тем как команда Wargaming Platform справляется со сложностью системы из более чем сотни взаимодействующих друг с другом web-сервисов, то добро пожаловать под кат.
Читать полностью »
Первый взгляд на FoundationDB, открытую Apple
2019-02-22 в 17:05, admin, рубрики: distributed systems, foundationdb, nosql, pyrus, Администрирование баз данных, высокая производительность, Облачные вычисления, ПрограммированиеВ прошлой статье мы рассматривали ограничения и препятствия, которые возникают, когда нужно горизонтально масштабировать данные и иметь гарантию ACID-свойств транзакций. В этой статье рассказываем о технологии FoundationDB и разбираемся, как она помогает преодолеть эти ограничения при разработке mission-critical приложений.
FoundationDB — это распределенная NoSQL база данных с ACID-транзакциями уровня Serializable, хранящая отсортированные пары ключ-значение (ordered key-value store). Ключами и значениями могут быть произвольные последовательности байт. У неё нет единой точки падения — все машины кластера равноправны. Она сама распределяет данные по серверам кластера и масштабируется на лету: когда в кластер нужно добавить ресурсов, ты просто добавляешь адрес новой машины на конфигурационных серверах и база сама подхватывает ее. Читать полностью »
Распределённый чат на Node.JS и Redis
2019-02-16 в 15:55, admin, рубрики: distributed systems, node.js, nodejs beginner, велосипедостроение, нуб учит нубов, Системы обмена сообщениями, чат
Небольшой вопрос/ответ:
Для кого это? Людям, которые мало или вообще не сталкивались с распределенными системами, и которым интересно увидеть как они могут строится, какие существуют паттерны и решения.
Зачем это? Самому стало интересно что и как. Черпал информацию с разных источников, решил выложить в концентрированном виде, ибо в свое время сам хотел бы увидеть подобную работу. По сути это текстовое изложение моих личных метаний и раздумий. Также, наверняка будет много исправлений в комментариях от знающих людей, отчасти это и есть целью написания всего этого именно в виде статьи.
Постановка задачи
Как сделать чат? Это должно быть тривиальной задачей, наверное каждый второй бекендер пилил свой собственный, так же как игровые разработчики делают свои тетрисы/змейки и т. п. Я взялся за такой, но чтоб было интереснее он должен быть готов к захвату мира, чтоб мог выдерживать сотниллиарды активных пользователей и вообще был неимоверно крут. Из этого исходит ясная потребность в распределенной архитектуре, потому что вместить все воображаемое количество клиентов на одной машине — пока нереально с нынешними мощностями. Заместо того чтоб просто сидеть и ждать на появление квантовых компьютеров я решительно взялся за изучение темы распределенных систем.
Стоит отметить что быстрый отклик очень важен, пресловутый realtime, ведь это же чат! а не доставка почты голубями.
%рандомная шутка про почту россии%
Использовать будем Node.JS, он идеален для прототипирования. Для сокетов возьмем Socket.IO. Писать на TypeScript.
И так, что вообще мы хотим:
- Чтоб пользователи могли слать друг-другу сообщения
- Знать кто онлайн/оффлайн
Как мы это хотим:

