Como o Rockset impulsiona o crescimento do nosso mercado NFT


No Domine o momentonossa missão é impulsionar a próxima geração de fãs de esportes – NFTs (tokens não fungíveis) de atletas profissionais. Os NFTs de jogadores são muito mais do que o equivalente a cartões de beisebol digitais, eles são o futuro do mercado de colecionáveis ​​esportivos.

Estamos ajudando a liderar o caminho. Fãs e investidores podem acompanhar valores de mercado em tempo actual para NFTs de jogadores da NFL e da NBA por meio de nosso serviço. Nós também fornecemos um mercado on-line para compra e venda de NFTs. Pense em nós como Ameritrade ou Coinbase, mas para seus ativos NFT esportivos.


Como o Rockset impulsiona o crescimento do nosso mercado NFT

Mais importante ainda, também criamos um plataforma de esportes de fantasia chamado The House owners Membership, que estreou com uma liga de futebol fantasia para a temporada 2021-22. Distribuímos US$ 1,5 milhão em prêmios aos competidores com base em seus instances de fantasia da NFL, compostos pelos jogadores NFTs de sua propriedade.

Embora possuir outros tipos de NFTs tenha se twister como colecionar arte, estamos gamificando os NFTs esportivos para criar muito mais utilidade e emoção em torno deles. Isso também cria maiores oportunidades para comerciantes experientes ganharem dinheiro comprando e vendendo NFTs de jogadores.

Isso torna meu trabalho como CTO de uma pequena startup extremamente interessante, pois tive que supervisionar a construção de uma infraestrutura de dados que suportasse:

  • Uma liga de esportes de fantasia onde a ingestão de dados e o uso simultâneo aumentam durante os dias de jogo
  • Uma tabela de classificação de jogadores com resultados em tempo actual
  • Troca de dados segura, eficiente e rápida com o blockchain Ethereum, onde os dados NFT do jogador são armazenados
  • Casos de uso mais convencionais, como relatórios financeiros internos

É uma tarefa difícil. Considerando a rapidez com que o espaço da Net 3.0 tem evoluído, não é surpresa que a primeira versão da nossa infra-estrutura de dados não suportasse todas estas exigências. Felizmente, conseguimos mudar rapidamente depois que descobrimos um banco de dados analítico em tempo actual feito sob medida para nossas necessidades em rápida evolução.

DynamoDB: Limitações analíticas reveladas

Entrei no Personal The Second em 2021 enquanto ainda estávamos no modo furtivo. Rapidamente descobri que para construir nossa liga de esportes de fantasia e mercado de NFT, precisaríamos de duas fontes principais de dados:

  1. Pontuações de jogos e estatísticas de jogadores em tempo actual, ambas fornecidas por um provedor de dados externo
  2. Nós Blockchain, como Alquimia que nos permitem ler e escrever informações sobre NFTs e carteiras criptográficas dos usuários no blockchain

Construí a primeira versão de nossa infraestrutura de dados totalmente baseada no banco de dados DynamoDB da Amazon na nuvem. Como nosso banco de dados de registro, o DynamoDB foi ótimo na ingestão de dados externos, que armazenamos em uma única tabela no DynamoDB. Também tínhamos tabelas menores do DynamoDB armazenando as informações do usuário e a mecânica de nossas competições de esportes de fantasia. Além de nossos concursos regulares semanais de melhores instances e tabelas de classificação cumulativas de jogadores, realizamos concursos como o de pior time, para que os usuários com cartas NFT ruins ainda tivessem uma probability de ganhar.

Para realizar esses concursos, precisávamos realizar consultas complexas e em grande escala usando as tabelas de dados do DynamoDB. E por causa da diversidade de concursos, tivemos muitas dúvidas diferentes. Foi aí que as limitações analíticas do DynamoDB apareceram.

Por exemplo, para fazer com que qualquer consulta do DynamoDB seja razoavelmente rápida, primeiro precisamos criar um índice secundário com uma chave de classificação personalizada para essa consulta. Além disso, o DynamoDB, como banco de dados NoSQL, não oferece suporte a comandos SQL, como JOINING múltiplas tabelas. Em vez disso, tivemos que desnormalizar nossa tabela principal do DynamoDB importando todas as informações do usuário que foram armazenadas em tabelas separadas do DynamoDB. Isso teve grandes desvantagens, como dificuldades em manter os dados atualizados com precisão durante os dias de jogo, além da necessidade de armazenamento further para tantos dados redundantes em nossa tabela principal. É todo um trabalho profundamente técnico que requer um desenvolvedor qualificado em análises do DynamoDB. E eles são um grupo raro e caro.

Incluída na mistura estava a ferramenta de mapeamento objeto-relacional (ORM) que implantamos chamado Dinamoose. O Dynamoose fornece recursos úteis, incluindo uma API programática e um esquema para o DynamoDB sem esquema. No entanto, a desvantagem dessa modelagem de dados adicional é uma grande latência adicional para nossas consultas. No nosso caso, isso resultou em um latência de consulta de três segundos.

Resumindo, tentar fazer com que o DynamoDB suportasse análises rápidas period um pesadelo que não teria fim. E com a temporada da NFL marcada para começar em menos de um mês, estávamos em uma situação difícil.

Uma solução mais rápida e amigável

Consideramos algumas alternativas. Uma delas period criar outro pipeline de dados que agregasse os dados à medida que fossem ingeridos no DynamoDB. Isso exigiria a criação de uma nova tabela, o que exigiria algumas semanas extras de tempo de desenvolvimento. Outra foi descartar o DynamoDB e encontrar um banco de dados SQL tradicional. Ambos teriam exigido muito trabalho.

Depois de encontrar Rockset através de um Weblog da AWS sobre criação de placaresnão perdemos tempo em começar a construir um novo placar voltado para o cliente com base no Rockset. Uma das primeiras coisas que minha equipe e eu notamos foi como o Rockset period fácil de usar. Trabalhei com quase todos os bancos de dados existentes nos últimos doze anos. A IU do Rockset é honestamente a melhor com a qual trabalhei.

O editor de consultas SQL é excelente, rastreando o histórico de consultas, salvando consultas e muito mais. Isso fez com que meus seis desenvolvedores, todos conhecedores de SQL, fossem imediatamente produtivos. Apenas com base na leitura dos SELECTs e JOINs em alguns exemplos Consultar Lambdaseles entenderam que tipo de dados tinham e como trabalhar com eles. No closing do dia, eles construíram literalmente consultas SQL e APIs funcionais sem qualquer ajuda externa. E com Rockset Índice Convergente™ e otimizador de consulta automáticotodas as consultas são rápidas e à prova de falhas. Não precisamos criar um índice personalizado para cada consulta, como fazemos com o Dynamo.

Ao usar o Rockset, economizamos semanas de horas de trabalho tentando superar e compensar as limitações analíticas do DynamoDB. Conseguimos lançar uma tabela de classificação de jogadores totalmente nova em apenas três semanas.

A produtividade do desenvolvedor é ótima, mas e o desempenho das consultas? Foi aí que Rockset realmente brilhou. Assim que migramos todas as consultas que alimentam nossas tabelas de classificação para o Rockset – 100 Consultar Lambdas no whole – começamos a poder consultar nossos dados em 100 milissegundos ou menos. Isso representa um aumento de velocidade de pelo menos 30x em relação ao DynamoDB.

Modelo sem servidor do Rockset também tornou a escalabilidade muito fácil. Isso foi importante para otimizar tanto o desempenho quanto o preço, já que nosso uso é muito dinâmico. Durante a primeira temporada, nosso pico de uso simultâneo durante os horários dos jogos – segundas e quintas à noite e durante todo o dia aos domingos – foi 20 vezes maior do que fora dos horários de pico. Eu simplesmente apertaria um botão e aumentaria o tamanho de nossa instância do Rockset durante os dias de jogo e não me preocuparia com gargalos ou intervalos.


ownthemoment-architecture

Ganhamos tanta confiança na velocidade, escalabilidade e facilidade de uso do Rockset que rapidamente transferimos o restante de nossas operações analíticas para o Rockset. Isso inclui dez coletas de dados ao todo, a maior das quais contém 15 milhões de registros, que armazenam dados importantes, incluindo:

  • 65.000 transações NFT no valor de US$ 1 milhão em nossa primeira temporada
  • os 23.000 usuários atuais em nosso sistema, juntamente com os registros dos 160.000 NFTs que possuem
  • nossa maior coleta de dados – 400.000 registros ingeridos de blockchains para transações NFT relacionadas aos nossos contratos inteligentes

O DynamoDB continua sendo nosso banco de dados registrado, conectando-se a microsserviços, sincronizando com o blockchain e transmitindo feeds de dados. Mas literalmente toda recuperação de dados e cálculo analítico agora passa pelo Rockset, desde o carregamento do mercado NFT do jogador e a visualização de todas as estatísticas de preços e transações, até os cartões de usuário. O Rockset sincroniza constantemente com o DynamoDB, obtendo novas pontuações de jogos a cada 5 a ten segundos e sincronizando com o blockchain onde os dados do NFT e da carteira do usuário são armazenados, e gravando tudo isso em uma coleção indexada.

Também fazemos todos os nossos relatórios administrativos internos através do Rockset. Rockset JOIN informações de mercado, usuários e pagamentos de tabelas separadas do DynamoDB para produzir relatórios agregados que exportamos como arquivos CSV. Conseguimos produzir esses relatórios em poucos minutos usando o Guia Coleções no Rockset.

Construir isso no DynamoDB, por outro lado, exigiria scripts e junção handbook de registros, ambos bastante sujeitos a erros. Provavelmente economizamos dias, senão semanas, usando o Rockset. Também nos permitiu realizar brindes e concursos para usuários que tinham coleções completas de NFTs em nosso sistema ou gastaram X dólares no mercado. Sem o Rockset, agregar nossa coleção cada vez maior de tabelas do DynamoDB exigiria muito trabalho.

Planos futuros

Na temporada passada distribuímos US$ 1,5 milhão em prêmios. Period dinheiro de verdade que estava em jogo! Ainda assim, foi essencialmente uma prova de conceito para nossa plataforma analítica baseada em Rockset, que funcionou perfeitamente. Reduzimos o número de erros de consulta e consultas com tempo limite para zero. Cada consulta é executada rapidamente. Nossa latência média de consulta diminuiu de seis segundos para 300 milissegundos. E isso é verdade para conjuntos de dados pequenos e maiores.

Além disso, o Rockset torna meus desenvolvedores superprodutivos, com uma interface de usuário fácil de usar e Escrever API e suporte SQL. E recursos como Índice Convergente e otimização de consulta eliminam a necessidade de gastar um tempo valioso de engenharia no desempenho da consulta.

Para a próxima temporada da NFL, estamos conversando com vários parceiros potenciais de grande nome na mídia esportiva e no negócio de fantasia. Eles estão vindo até nós porque somos a única plataforma que conheço hoje que integra o blockchain em uma solução NFT baseada em utilitários.

Também estamos trabalhando em muitas mudanças de backend, como a construção de novas APIs no Rockset e novas integrações. Também estamos nos preparando para um crescimento de 10x em todas as dimensões – base de usuários, NFTs de jogadores, registros de dados e muito mais. O que não vai mudar é o Rockset. Está provado que ele pode atender a todas as nossas necessidades: análises ultrarrápidas, escaláveis ​​e complexas, fáceis de desenvolver e econômicas de gerenciar.



Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *