apple /
foundationdb
FoundationDB — распределенное транзакционное key-value хранилище с открытым исходным кодом.
Форки
1.5k
Звёзды
16.4k
Issues
0
FoundationDB — это распределенная база данных типа ключ-значение с поддержкой ACID-транзакций. Она дает надежное хранилище для проектов, где критична целостность данных.
Что делает
FoundationDB хранит данные в виде упорядоченного набора пар ключ-значение. В отличие от обычных БД, она работает как распределенная система, которая автоматически масштабируется и выдерживает падение отдельных узлов без потери информации.
Система гарантирует ACID-транзакции на уровне всей базы. Это значит, что любая операция с данными либо выполняется полностью, либо не выполняется вовсе. Это упрощает работу с состоянием приложения, так как не нужно вручную разруливать конфликты при одновременной записи.
Как работает
Архитектура разделяет уровни хранения данных и управления транзакциями. Она использует распределенный консенсус для координации узлов. Благодаря этому система обеспечивает строгую согласованность данных даже при высокой нагрузке.
Инструмент написан на C++, но предоставляет API для интеграции с популярными языками. В основе лежит модель, где каждый запрос проходит через слой транзакций, прежде чем попасть в постоянное хранилище.
Кому подходит
Делаешь высоконагруженный SaaS, где нельзя терять данные при сбое.
Нужна база, которая сама масштабируется при росте числа пользователей.
Строишь систему, где критически важна абсолютная точность финансовых транзакций.
Ищешь альтернативу классическим реляционным БД для сложных распределенных задач.
Основные возможности
Полная поддержка ACID-транзакций.
Распределенная архитектура с высокой доступностью.
Линейное масштабирование при добавлении новых узлов.
Упорядоченное хранение ключей для быстрого поиска по диапазонам.
Отказоустойчивость: система продолжает работу при выходе из строя части серверов.
Поддержка версионирования транзакций.
Как установить
Для локального тестирования проще всего использовать бинарные файлы или Docker-контейнеры. Установка зависит от вашей ОС:
# Пример для Linux (Debian/Ubuntu)
wget https://github.com/apple/foundationdb/releases/download/7.1.34/foundationdb-clients_7.1.34-1_amd64.deb
sudo dpkg -i foundationdb-clients_7.1.34-1_amd64.debПосле установки нужно запустить процесс `fdbserver`. Для разработки на macOS используйте `brew install foundationdb`.
Как применить в своём продукте
FoundationDB — это «фундамент» для серьезных проектов. Используй её как основное хранилище для метаданных или состояний пользователей, когда стандартных решений вроде Redis или PostgreSQL становится недостаточно из-за сложности синхронизации.
Заменить самописные механизмы блокировок в своем SaaS на встроенные транзакции БД.
Использовать как бэкенд для распределенных очередей задач.
Хранить конфигурации систем, требующие мгновенного обновления на всех узлах.
Встроить как слой хранения для микросервисов.
Использовать для создания систем с сильной консистентностью данных.
Заменить несколько разрозненных БД одной надежной системой.
Подводные камни
Это не «коробочное» решение для новичков. У FoundationDB высокий порог входа в настройку и эксплуатацию кластера. Если вы не готовы заниматься администрированием распределенной инфраструктуры, лучше присмотреться к управляемым облачным версиям. Также помните, что модель «ключ-значение» требует тщательного проектирования структуры данных на этапе разработки.
Частые вопросы
Чем FoundationDB отличается от Redis?
Redis — это в первую очередь БД в оперативной памяти с упором на скорость. FoundationDB — это распределенное дисковое хранилище, которое ставит во главу угла целостность и транзакционность данных. Она надежнее при записи, но требует более сложной настройки кластера для работы.
Нужно ли мне знать C++ для работы с ней?
Нет, не нужно. Авторы подготовили официальные клиентские библиотеки для Python, Go, Java, Rust и других языков. Вы общаетесь с базой через привычный код на вашем языке, а сам движок базы остается «под капотом».
Насколько сложно масштабировать кластер?
Система спроектирована для масштабирования. Добавление новых узлов обычно происходит без остановки работы приложения. Однако это требует правильной настройки сетевой топологии и понимания того, как данные распределяются по нодам в вашем конкретном случае.
Топики
Похожие репозитории
GPT4All позволяет запускать LLM прямо на твоем ноутбуке без интернета. Это open-source движок для локального инференса, который работает на CPU.
ImHex — продвинутый hex-редактор с поддержкой визуализации данных и разбора бинарных структур. Идеален для реверс-инжиниринга и отладки файлов без боли для глаз.
qBittorrent — это классический BitTorrent-клиент с открытым кодом. Позволяет передавать файлы по P2P-сети без посредников.
Sunshine — это open source хост для стриминга игр, который заменяет проприетарный софт NVIDIA. Идеален для создания своего облачного гейминг-сервиса.
Данные обновлены: 3 июня 2026 г.