É com imenso prazer que anunciamos o lançamento do Serviço de eventos do Couchbase como parte do Plataforma de dados Couchbase 5.5. Essa nova oferta aproxima a computação dos dados e permite que os clientes processem alterações (criar/atualizar/excluir/expirar) nos dados armazenados no Couchbase Cluster à medida que elas ocorrem, quase em tempo real. Ele fornece uma interface para consumir as alterações que são expostas com o Database Change Protocol (DCP). O DCP reúne vários serviços diferentes na plataforma de dados do Couchbase. Index, Full Text Search e XDCR consomem DCP para suas operações eficientes.

Funções do Couchbase

Funções do Couchbase é a primeira oferta do Couchbase Eventing Service que permite que você escreva funções no lado do servidor que são acionados automaticamente usando o conhecido Modelo Evento-Condição-Ação. É extremamente fácil de usar, por meio de um editor de código javascript on-line que permite desenvolver e depurar o código em mutações geradas para os dados que residem no cluster do Couchbase. O Couchbase Eventing Service lida com toda a complexidade do dimensionamento para um grande número de mutações de documentos. Ao facilitar ao máximo a implementação de regras de negócios, o Couchbase Functions oferece aos desenvolvedores uma plataforma pela qual eles podem concentrar-se na lógica de negócios, e não na configuração ou na infraestrutura. Esse paradigma permite desenvolver experiências de usuário profundamente envolventes e personalizadas com base em eventos em tempo real.

O Couchbase Functions elimina os problemas de várias gravações da camada de aplicativos para gerenciar alterações e também é muito mais eficiente, pois oferece uma alternativa à sondagem da camada intermediária. O Couchbase Functions oferece a solução de alguns dos seguintes requisitos que não eram possíveis anteriormente, fornecendo aos desenvolvedores uma interface limpa e simples.

  • Notificações antes da expiração
  • Monitoramento e alertas baseados em limites
  • Propagar alterações em outros sistemas
  • Enriqueça o conteúdo em tempo quase real
  • Acionar uma rotina em um documento em intervalos especificados
  • Exclusões em cascata

Além disso, ele oferece esses recursos com desempenho em escala, uma característica importante e um requisito para a maioria das operações de computação distribuída.

O Couchbase Functions é voltado essencialmente para cargas de trabalho assíncronas, sem estado e de baixa latência (com intervalo de tempo), que geralmente apresentam tráfego inconsistente. Ao enfatizar a lógica de negócios em vez da configuração ou da infraestrutura, os desenvolvedores têm uma ferramenta muito poderosa em seu arsenal, o que leva a uma alta velocidade de desenvolvimento. Ao reduzir as barreiras para fazer experimentos com dados, o serviço Functions oferece aos desenvolvedores uma experiência rápida e agradável, o que, por sua vez, permite que as empresas sejam muito mais ágeis.

Por exemplo, é possível enviar um e-mail promocional quando um carrinho de compras estiver prestes a expirar, acionar um alerta quando um valor monitorado exceder um determinado limite ou propagar alterações no Couchbase para outros sistemas adjacentes.

Couchbase Functions Summary Screen

Tela de resumo das funções

O Couchbase Functions é uma oferta desenvolvida internamente, que utiliza o mecanismo V8 para executar o código Javascript. As mutações nos dados podem ser consumidas pelos dois manipuladores de eventos prontos para uso - OnUpdate e OnDelete - que são acionados respectivamente para operações de criação+atualização e exclusão de dados. Também adicionamos e removemos muitas construções da linguagem Javascript para que ela tenha um desempenho em escala.

Browser based Javascript Editor

Editor Javascript baseado em navegador

Como o Couchbase Functions é essencialmente uma plataforma para escrever trechos de código no lado do servidor que são acionados em resposta a eventos, ele aproxima a infraestrutura de computação sem servidor (os aspectos de FaaS) do armazenamento de dados e, portanto, também ajuda na consolidação da camada.

Recursos de diagnóstico de classe mundial!!!

Um problema frequentemente citado com sistemas baseados em eventos é a completa falta de opções de diagnóstico. O Couchbase Functions se integra ao Chrome Debugger para depurar atualizações de dados em tempo real. Bloqueamos apenas uma única mutação por vez e a entregamos à sessão do depurador, de modo que o processamento do restante das mutações não seja bloqueado. Esse recurso é provavelmente o primeiro do gênero no mundo dos bancos de dados ou no software de streaming.

Os desenvolvedores também podem especificar instruções de registro que são capturadas em arquivos de registro específicos do aplicativo no sistema de arquivos. Os recursos de diagnóstico que estão sendo oferecidos, tanto em um arquivo quanto usando o depurador, realmente diferenciam essa oferta e também oferecem aos desenvolvedores e administradores uma ferramenta poderosa que não existia anteriormente.

Online Real-Time Javascript Debugger

Depurador on-line de Javascript em tempo real

E, sim, ele é um serviço habilitado para escalonamento multidimensional (MDS). Portanto, o Couchbase Eventing Service pode ser executado em seu próprio conjunto de nós, fornecendo o tão necessário isolamento de carga de trabalho e também escalabilidade independente para cargas de trabalho de computação.

Eventing Service is a MDS Service

O serviço Eventing é um serviço MDS

Esperamos sinceramente que você considere essa oferta atraente e a implemente para solucionar casos de uso que realmente revolucionem seus fluxos de trabalho e levem a um melhor envolvimento e satisfação do cliente. Estamos ansiosos para ouvir mais de você.

"Uma ferramenta [de software] bem-sucedida é aquela que foi usada para fazer algo que seu autor não havia imaginado". - Stephen Johnson

Autor

Postado por Venkat Subramanian, gerente de produtos

Venkat trabalha com desenvolvimento e gerenciamento de produtos e vem desenvolvendo plataformas e produtos de dados/análise. Uma parte significativa de sua experiência foi na Oracle, onde passou de engenheiro da equipe de Enterprise Manager da Oracle a gerente de produtos do conjunto de produtos de BI/Analytics da Oracle. No passado, ele trabalhou em startups, ajudando a desenvolver produtos de aprendizado de máquina/NLP e sistemas de decisão distribuídos. Ele está sempre por perto em @venkasub.

7 Comentários

  1. Olá, Venkart,
    tem uma pergunta sobre seu novo sistema Evening.

    Tentei usar a função CURL dentro da função de evento, mas sempre recebo o erro "CURL is not defined" (no depurador do Google Chrome).

    Eu tenho curl_whitelist.json definido corretamente, pois quando faço uma consulta (Workbench -> Query) "SELECT CURL("http://127.0.0.1:5000/");" (meu servidor de teste local) recebo a resposta de volta.

    Preciso alterar alguma configuração adicional para poder usar a função CURL em funções de eventos?

  2. Avinash Kolluru janeiro 8, 2019 em 7:55 pm

    Você pode compartilhar um exemplo de uma função "Notificação antes do vencimento"?
    A primeira imagem tem um add_timer. Não consigo encontrar a documentação apropriada para criar essa função.

    1. Venkat Subramanian, gerente de produtos janeiro 8, 2019 em 8:05 pm
      1. Avinash Kolluru janeiro 8, 2019 em 9:34 pm

        Obrigado pela resposta rápida. Isso é suportado mesmo na versão 5.5?

        1. Venkat Subramanian, gerente de produtos janeiro 8, 2019 em 9:35 pm

          Os temporizadores foram introduzidos na versão 6.0

  3. Venkat
    Pergunta 1 - Estou usando o couchbase elastic connector 4.2 e tentando configurar o arquivo TOML. Meu documento de origem tem o docType como "EBA::CP". Como modelá-lo no arquivo TOML do conector, tentei usar o trecho abaixo

    [[elasticsearch.type]]
    regex = '(?.+?)::.*'

    No entanto, ele está mapeando o índice somente para "EBA". Quero que o índice seja mapeado para "EBA::CP"
    Qualquer ajuda é muito bem-vinda.

    Pergunta 2 - Usando o couchbase eventing, posso selecionar apenas um subconjunto de campos no documento de origem e enviá-los para a pesquisa elástica por meio do conector elástico do couchbase?

Deixar uma resposta