PumpkinDB

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: pumpkindb.org

PumpkinDB — это программная система управления базами данных, реализующая иммутабельную упорядоченную структуру ключ‑значение с упором на практики event sourcing и историю изменений. Система сочетает хранение неизменяемых записей с возможностью упорядоченного доступа по ключам и поддержкой версионирования, что делает её пригодной для аудита, восстановления состояний и детерминистического воспроизведения последовательностей изменений. PumpkinDB разрабатывается как лёгкий и предсказуемый движок для приложений, которым требуется явная история трансформаций данных и детальная запись событий доменной логики.

В основе архитектуры лежит журнал неизменяемых записей, в который последовательно добавляются события или транзакции; чтение осуществляется путём применения этих событий или выборки значений на заданных версиях. Для удобства разработчиков в систему встроен императивный язык запросов, называемый PumpkinScript, предназначенный для описания трансформаций, фильтрации событий и агрегирования данных на стороне хранилища. Документация и реализация PumpkinDB ориентированы на сценарии, где важны детерминированность, одновременная обработка событий и возможность репликации состояний между инстансами.

  • Иммутабельность: все записи в хранилище являются неизменяемыми, что упрощает аудит и откат к любым предыдущим состояниям.
  • Упорядоченное ключ‑значение: поддержка сортировки по ключам и эффективные диапазонные запросы.
  • Event sourcing: первичная модель данных основана на журнале событий, которые могут быть воспроизведены для восстановления состояния агрегатов.
  • PumpkinScript: встроенный императивный язык запросов для описания серверных трансформаций, вычисляемых полей и агрегаций.
  • Версионирование: хранение историй изменений и возможность чтения данных на конкретной версии или временной точке.
  • Репликация и консистентность: механизмы для репликации журналов событий между узлами и детерминированного синхронизированного воспроизведения.
  • Аудит и трассируемость: полная прослеживаемость изменений благодаря неизменяемому журналу и метаданным событий.
  • Интеграция с приложениями: API для записи событий, подписки на события и выполнения PumpkinScript-скриптов в контексте хранилища.
  • Оптимизация чтения: механизмы создания снимков (snapshots) и индексирования для ускорения восстановления состояния и доступа по ключам.
  • Типичные сценарии использования: системы учёта и аудита, финансовые приложения, системы событийной интеграции и CQRS‑архитектуры.
Подробнее