Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Saiba por que o MongoDB foi selecionado como um líder no 2024 Gartner_Magic Quadrupnt()
Desenvolvedor do MongoDB
Centro de desenvolvedores do MongoDB
chevron-right
Produtos
chevron-right
MongoDB
chevron-right

TableCheck: restaurantes habilitados com as melhores ferramentas de reserva da classe, desenvolvido pela MongoDB

Alex Bevilacqua4 min read • Published Dec 14, 2022 • Updated Aug 28, 2024
MongoDBRuby
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Artigo
star-empty
star-empty
star-empty
star-empty
star-empty
TableCheck é a principal plataforma de agendamento e hospedagem do mundo. Com sede em Tóquio, eles capacitam os restaurantes com ferramentas para melhorar a experiência do cliente e criar clientes para a vida toda, com recursos como formulários de reserva, pesquisas, ferramentas de automação de marketing e um ecossistema de soluções poderosas para os restaurantes levarem seus negócios adiante.

Visão geral da arquitetura do TableCheck

Lançado em 2013, o TableCheck começou a vida como um monítico Ruby on Rails. Com o tempo, a solução foi expandida para incluir microsserviços de Satélite. No entanto, uma constante que se manteve ao longo desta viagem foi o MongoDB.
Originalmente, o TableCheck gerenciava seus próprios clusters MongoDB Enterprise. No entanto, assim que o MongoDB Atlas ficou disponível, eles migraram seus dados para um conjunto de réplicas gerenciadas em execução na AWS.
De acordo com o CTO Júlia, o MongoDB foi selecionado inicialmente como o banco de dados de dados preferido para o TableCheck, pois foi "amor à primeira vista". Embora o MongoDB fosse uma solução muito diferente 2013 no, mesmo na Infância do produto de banco de dados de dados, ele se encaixava perfeitamente no fluxo de trabalho de desenvolvimento e permitia que trabalhassem com seus dados de forma fácil e rápida enquanto criavam suas APIs e aplicação.

Ruby on Rails + MongoDB

Qualquer desenvolvedor familiarizado com o Ruby on Rails sabe que a camadaORM (via Active Record) foi projetada para oferecer suporte a bancos de dados relacionais.O Mongoid ODM do MongoDB atua como um verdadeiro substituto "drop-in" para os adaptadores Active Record existentes, para que o MongoDB possa ser usado perfeitamente com o Rails. A API CRUD é familiar para os desenvolvedores Ruby on Rails e torna o trabalho com o MongoDB extremamente fácil.
Quando perguntado se MongoDB e Ruby se encaixavam bem, J. J.
"Sim, eu adicionaria a combinação de MongoDB + Ruby + Rails + Mongoid é uma combinação feita no pedaço. Particularmente com a biblioteca Mongoid ORM, é fácil obter dados do MongoDB representados em estruturas de dados Ruby nativas, por exemplo, como matrizes e objetos aninhados ".
Isso permite que o TableCheck garanta que o MongoDB continue sendo a "fonte de cobre" de dados para toda a plataforma. Atualmente, eles replicam um subconjunto de dados para o Elasticsearch para funcionalidade de pesquisa profunda de vários campos. No entanto, dada a crescente utilidade e utilidade do Atlas Search, essa parte da pilha pode ser ainda mais simplificada.
À medida que os dados do MongoDB mudam na plataforma TableCheck, essas alterações são transmitidas pelo Apache Kafka por meio do Kafka Connector do MongoDB para permitir que os serviços downstream os consumam. Vários de seus microsserviços são criados no Elixir, incluindo um aplicativo de análise de dados. O PostgreSQL está sendo usado para esses casos de uso de análise de dados como os únicos drivers do MongoDB para Elixir e gerenciados pela comunidade (como elixir-mongo/mongodb ou zookzook/elixir-mongodb-driver). No entanto, se um driver oficial vier à tona, essa decisão poderá mudar.

Benefícios do Mongoid ODM para Ruby on Rails desenvolvimento

O "recurso matador" para novos usuários que descobrem Ruby on Rails é Migrações de registros ativos. Esse recurso do Active Record fornece um DSL que permite aos desenvolvedores gerenciar o esquema do relational database sem precisar escrever uma única linha de SQL. Como o MongoDB é um MongoDB, migrações e gerenciamento de esquema são desnecessários!
Johnny Shields compartilha o seguinte com base em sua experiência trabalhando com MongoDB e Ruby on Rails:
" Você pode adicionar ou remover campos de dados sem precisar migrar seu banco de dados. Isso por si só é uma razão para escolher o MongoDB. No entanto, você ainda precisa considerar os índices do banco de dados, mas o MongoDB Atlas tem um analisador que monitorará se há queries lentas e fará a sugestão automática se algum índice for necessário."
Como o Mongoid ODM suporta grandes porções da API Active Record, outro poderoso recurso de produtividade que o TableCheck conseguiu aproveitar é o uso de associações. Associações referenciadas entre collection estão disponíveis. No entanto, diferentemente dos relational database, as associações incorporadas podem ser usadas para simplificar o modelo de dados.

Código aberto e forte comunidade

Tanto amongodb/mongoid quanto amongodb/mongo-ruby-driver estão licenciadas sob licenças aprovadas pela OSI e o MongoDB incentiva a comunidade a contribuir com comentários, problemas e solicitações pull!
Desde 2013, a equipe do TableCheck forneceu quase 150 PRs para ambos os projetos. A maioria tende a ser melhorias de qualidade de vida e correções de bugs relacionadas a combinações de casos extremos de vários métodos/opções. Eles também ajudarão a melhorar a precisão da documentação em muitos lugares e até mesmo ajudarão a equipe do MongoDB Ruby a configurar o Github Actions para que seja mais fácil para quem está de fora contribuir.
Com tantas contribuições sob a responsabilidade de sua equipe e claramente capaz de estender o Driver e o ODM para se adequar a qualquer caso de uso que a equipe do MongoDB possa não ter imaginado, quando questionado se havia algum caso de uso que o MongoDB não pudesse satisfazer em um Ruby on Rails aplicação, o feedback foi:
"Não vi nenhum caso de uso em que achasse que o SQL seria uma solução fundamentalmente melhor do que o MongoDB. Pelo contrário, temos vários microsserviços que iniciamos no SQL e estamos mudando para o MongoDB agora sempre que podemos."
A equipe do TableCheck defende coisas como melhores changelogs e mais disciplina no seguimento das melhores práticas de versionamento semântico. Isso beneficiou enormemente a comunidade, e Johnny e sua equipe continuam defendendo coisas como a adoção da análise estática de código (ex: via Rubocop) para melhorar a qualidade e consistência geral do código.

Considerações gerais sobre trabalhar com MongoDB e Ruby on Rails

O TableCheck é um usuário de longa data do MongoDB por meio do driver Ruby e do Mongoid ODM e, como resultado, tem experimentado algumas dores de crescimento à medida que a plataforma de dados amadurecia. Quando perguntado sobre os desafios que sua equipe enfrentara trabalhando com o MongoDB ao longo dos anos, J.
"O maior desafio era que nas versões anteriores do MongoDB (3.x) havia alguns bugs aleatórios do tipo impasse no servidor que nos atingiram. Eles parecem ter ido embora em versões mais recentes (4.0+). O MongoDB claramente fez um investimento na estabilidade do núcleo, do qual nos beneficiamos em primeira mão. No início, mantivemos nosso próprio cluster e, de alguns anos atrás, mudamos para o Atlas e o MongoDB agora faz grande parte da manutenção para nós ".
Nós do MongoDB continuamos Impressionados com o escopo e a escala das soluções que nossos usuários e clientes, como o TableCheck, continuam a construir. O Ruby on Rails continua a ser uma estrutura compatível para aplicativos empresariais e os melhores da classe, e nossa equipe continuará a desenvolver o produto para atender às necessidades da próxima geração de desenvolvedores de aplicativos Ruby.
Johnny fez uma apresentação no MongoDB Day Singapore em 23 de novembro 2022 (ver apresentação). Sua palestra abordou vários tópicos, incluindo suas experiências trabalhando com MongoDB e Ruby.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Artigo
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Artigo

Pipeline de agregação: aplicando a lei de Benford aos dados de COVID-19


Jan 26, 2023 | 16 min read
Tutorial

Introdução ao MongoDB e ao Amazon Q Assistente de codificação IA generativa


Sep 25, 2024 | 3 min read
Tutorial

Criar um microsserviço de preços dinâmicos com Vertex AI e MongoDB Atlas


Jan 22, 2025 | 18 min read
Artigo

Análise de moeda com coleções de séries temporais # 3 — Cálculo de MACD e RSI


Sep 11, 2024 | 8 min read
Sumário