Как Mongoose переведет JSON-ориентированных разработчиков на Apache Cassandra

Как Mongoose переведет JSON-ориентированных разработчиков на Apache Cassandra

4 апреля 2023 г.

Apache Cassandra становится лучшей базой данных для обработки документов JSON. Если вы разработчик Cassandra и считаете это заявление провокационным, читайте дальше.

В предыдущей статье мы обсуждали использование API данных и моделирования данных для создания Cassandra. в опыт разработчиков, более идиоматический по сравнению с тем, как думают разработчики, тем самым повышая производительность разработчиков, сохраняя при этом разумную производительность и масштабируемость базы данных. Это отличная гипотеза, которую необходимо проверить в контексте конкретной идиомы разработчиков и сообщества разработчиков.

Mongoose, библиотека сопоставления данных объектов, обычно используемая с драйвером MongoDB, представляет собой проект с открытым исходным кодом, вокруг которого работает значительное сообщество разработчиков JavaScript. В проекте Stargate, шлюзе данных API с открытым исходным кодом, предназначенном для работы с Cassandra, мы сотрудничаем с Mongoose и работаем над предстоящий JSON API, который будет выпущен вместе с версия Mongoose, которая будет работать через этот JSON API для подключения к Cassandra. Это создает сквозной стек для разработчиков Mongoose с полностью открытым исходным кодом. Это меняет правила игры для разработчиков Mongoose и открывает новую важную главу для Cassandra.

В этой статье я расскажу, как предоставить удобную для разработчиков идиому JSON, используя Cassandra вместе со Stargate, и как мы работаем над тем, чтобы сделать это для разработчиков Mongoose.

Златовласка сообществ JS

В октябре 2022 г. мы выпустили новую версию Звездных врат. В новой Версии 2 отдельные API больше не встроены в основной код координатора Звездных врат. , а вместо этого разделены на отдельные службы. Это повышает эффективность работы Stargate; отдельные службы API теперь можно развертывать и масштабировать независимо друг от друга. Это также упрощает разработку новых API-сервисов. Пока они не выходят за рамки службы, эти службы могут разрабатываться параллельно и независимо от основной работы по разработке Звездных врат.

Затем мы искали действительно идиоматический опыт, который мы могли бы предоставить разработчикам. С 18 миллионами разработчиков JavaScript является самым популярным языком программирования в мире, а JSON — это стандартный способ структурирования данных разработчиками JavaScript. Однако 18 миллионов человек — это не сообщество; это много сообществ. Нам нужны были «Златовласки» JavaScript-сообществ — достаточно большие, чтобы быть значимыми, и достаточно маленькие, чтобы на них можно было сфокусироваться. Мы нашли правильное сообщество, созданное вокруг Mongoose, библиотеки сопоставления данных объектов, используемой с приложениями, которые подключаются к MongoDB. Мангуст обладает несколькими важными характеристиками:

  • Ориентирован на JavaScript
  • Он получил широкое распространение: около 2 миллионов репозиториев GitHub указывают Mongoose как зависимость.
  • Создатель Mongoose Активное руководство Валерия Карпова обеспечивает четкую направленность
  • Это проект с открытым исходным кодом, в котором отсутствует база данных с открытым исходным кодом с тех пор, как MongoDB приняла решение перейти на модель с общим исходным кодом с ее Общедоступная серверная лицензия

На самом деле разработчики взаимодействуют не столько напрямую с базой данных, сколько с моделью данных. В оригинальном Document API Stargate API обрабатывает JSON, делая его похожим на традиционную таблицу Cassandra. Это усложняет задачу разработчикам, ориентированным на JSON, думать о структурах данных Cassandra, а также усложняет логику индексирования Cassandra, ориентированную на строки, поскольку документ JSON распределяется по нескольким строкам.

Наш новый JSON API отходит от этой модели данных и вместо этого опирается на модель данных, которую мы называем «супер-шрединг». Вы можете узнать больше о супершреддинге, посмотрев выступление Аарона Мортона на недавнем мероприятии Cassandra Forward. Короче говоря, мы пользуемся преимуществами широких столбцов Cassandra для хранения одного документа в строке, зная, что строка Cassandra может обрабатывать даже очень большие документы. У нас также есть набор столбцов в этой строке, которые явно предназначены для хранения стандартных характеристик метаданных документа JSON. Теперь у нас есть что-то более легко индексируемое, а также средство сохранения и извлечения метаданных.

Затем мы добавим эту модель данных в наш новый JSON API, используя ту же спецификацию mQuery, которую Mongoose использует в качестве руководящего требования для который вызывает API, который должен поддерживать. Когда это будет завершено, это должно позволить любому из более чем 2 миллионов приложений, зависящих от Mongoose, работать с Cassandra с открытым исходным кодом или размещенной службой Cassandra DataStax, Astra DB, всего лишь изменив конфигурацию.

С помощью Mongoose и нового JSON API мы предоставим полностью идиоматический опыт разработчикам JavaScript, ориентированным на JSON, предоставив им масштаб и производительность Cassandra, лежащие в основе аутентичной модели данных JSON.

Создатель Mongoose Карпов также выступил на недавнем мероприятии Cassandra Forward (вы можете посмотреть повтор здесь), продемонстрировав простую электронную коммерцию приложение, которое использует версию Mongoose для Stargate, Stargate с открытым исходным кодом и версию Cassandra для DataStax Enterprise (DSE). Вы можете загрузить рабочий код для этого приложения и части вспомогательной платформы с GitHub. Хотя у нас достаточно кода для запуска этого приложения, код еще не завершен. Например, мы используем DSE прямо сейчас, потому что нам нужно индексирование с подключением к хранилищу (SAI), которое работает с DSE и планируется к выпуску в Cassandra 5.0 появится позже в этом году.

Содействие Кассандре

Cassandra – это не статичная программа. это динамичный и развивающийся проект с открытым исходным кодом. Таким образом, мы также продолжаем давнюю традицию Cassandra по использованию таких функций, как SAI, которые emerge на стороне клиента, чтобы способствовать изменениям на стороне базы данных. Аналогичным образом, работа над Mongoose в Stargate подтолкнула Cassandra к ряду предложений относительно глобальной сортировки и расширенной фильтрации запросов, которые не только улучшат JSON API Stargate и клиент Mongoose, но и добавят мощные новые возможности языка запросов Cassandra. Это отличное напоминание о том, что инженеры по данным и разработчики приложений — это не два разных сообщества, а дополняющие друг друга когорты расширенного сообщества Cassandra.

И JSON — это только первый шаг. По сути, мы взяли строительные блоки Cassandra, Stargate и достаточно эффективную модель данных Cassandra и построили базу данных документов, с которой вы взаимодействуете через JSON API. Другими словами, мы использовали супершреддинг для создания специальной базы данных, которая лучше подходит сообществу разработчиков Mongoose.

Благодаря модульной архитектуре Stargate v2 и подтверждению идиоматического подхода Mongoose мы готовы принять на новых сообществах разработчиков, которые организуются вокруг определенной идиомы разработки программного обеспечения. Процесс, с помощью которого мы использовали Cassandra для Mongoose, повторяем — и мы будем повторять его. При этом мы значительно расширяем число разработчиков и вариантов использования, которые может решать Cassandra, что является своего рода целью, достойной проекта с открытым исходным кодом.


Подробнее о DataStax.

Марк Стоун. Марк — менеджер по продукту в DataStax. Он ветеран технологий с многолетним опытом управления продуктами, программами и людьми. Всегда работая в качестве связующего звена между заинтересованными сторонами бизнеса и техническими заинтересованными сторонами, Марк любит отстаивать опыт разработчиков на технологических платформах и помогать организациям встречать разработчиков там, где они есть.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE