A tecnologia da Retail Rocket
Em 2012, escreveu-se a primeira linha do código da Retail Rocket. Desde então, os engenheiros da Retail Rocket e a equipa de ciência de dados têm mantido a sua paixão por mudar o mundo do comércio eletrónico e torná-lo verdadeiramente personalizado.
Alguns números que descrevem brevemente a Retail Rocket:
• Mais de 80 servidores (principalmente na Alemanha).
• Mais de 100 milhões de utilizadores únicos (cookies únicas) processados por mês.
• Mais de 1000 lojas ligadas à Retail Rocket em todo o mundo.
• Mais de 450000 pedidos API por minuto (em média).
• 45 anos de investimento em desenvolvimento.
O objetivo do Retail Rocket é identificar as necessidades dos utilizadores da loja online, analisando o seu comportamento e as bases de dados de produtos. A geração de recomendações personalizadas em tempo real requer o uso de variáveis e algoritmos de última geração, que incluem:
- Filtragem de conteúdo.
- Filtragem colaborativa.
- Análise preditiva baseada na aprendizgem automática e no modelo de Markov.
- Estatística de Bayesi.
- Algoritmos híbridos para personalização em tempo real.
… e muito mais.

A nossa equipa de engenharia é membro ativo da comunidade de Ciência de dados, com diferentes publicações e prémios obtidos em competições de Ciência de dados e com inúmeras apresentações em reconhecidos eventos do setor.


Para a aprendizagem automática, usamos a estrutura Spark baseada na plataforma Hadoop Yarn - um sistema de computação em cluster que usa o Scala, uma linguagem de programação funcional. Em relação aos componentes nativos do Hadoop, usamos o Apache Flume para transferência de dados, o Mahout Machine Learning e o Oozie scheduler.
A equipa da Retail Rocket armazena vários projetos interessantes no GitHub:Simple A/B-testing engine in JavaScript, mecanismo simples de teste A / B em JavaScript, biblioteca Spark MultiTool para Scala, cluster de implementação do Hadoop usando Puppet.

Quase tudo aquilo com que um utilizador interage é processado pelos servidores da Web do IIS, o código está escrito em C #, Asp.Net MVC. Bases de dados que usamos: Redis, MongoDB, PostgreSQL.
Quando precisamos executar as interações entre componentes distribuídos, por exemplo, para o cálculo do segmento do utilizador com base no User-Agent (perfis de público), usamos o Thrift. E para construir o fluxo de dados das lojas online com vários subsistemas usamos o transporte Flume, mencionado acima.

Somos defensores de uma metodologia contínua de empresa (Delivery Methodology) para garantir a eficiência com nossos clientes (atualmente trabalhamos com mais de 1000 lojas).
Para o conseguirmos, usamos uma série de tecnologias Git + GitLab + TeamCity com testes unitários automatizados (mais de 1200 no início de 2017), testes de aceitação e procedimentos de revisão de código.