1
resposta

[Dúvida] Backend separado (website e aplicativo) ou omnichannel?

Opa pessoal, tudo bom?

Estou planejando fazer um website e aplicativo completo de ecommerce e me deparei com uma situação no planejamento.

fiquei em duvida se criar um backend separado seria a melhor solucao ou fazer omnichannel, que seria um backend unico para os dois.

Para o projeto que estou planejando seria melhor qual opcao? no meu caso estava pensando em fazer da seguinte forma:

Frontend : next.js backend : node.js / java / c# mobile : react native / koblin

para o frontend já estou certo em fazer em next.js o website mas para o backend e mobile fica a duvida. apesar de ser um projeto quero que seja algo que aguente um alto fluxo de usuários e requisições, então como não tenho experiência em qual linguagem usar nesse caso é que vem a duvida.

outra coisa é que no mobile se farei em koblin o backend tera que ser 3 no java? (ios, android , web)

essas sao as duvidas que tenho (por agora) se hover outras voltarem nesse post. obrigado!

1 resposta

Oi, Conrado! Tudo bom?

Essa é uma dúvida bastante comum quando se está planejando um projeto de e-commerce. Vamos lá!

  1. Backend Separado vs. Omnichannel

    Omnichannel (Backend Único):

    • Vantagens:

      • Manutenção Centralizada: Um único backend facilita a manutenção e a atualização do sistema.
      • Consistência de Dados: Como todas as plataformas (website e aplicativo) utilizam o mesmo backend, os dados são consistentes e sincronizados em tempo real.
      • Desenvolvimento mais Rápido: Focar em um único backend pode acelerar o desenvolvimento, já que você não precisa duplicar funcionalidades.
    • Desvantagens:

      • Escalabilidade: Pode ser mais desafiador escalar um único backend para suportar um grande número de requisições de múltiplas plataformas.
      • Complexidade: Um backend único pode se tornar complexo e difícil de gerenciar conforme o projeto cresce.

    Backend Separado:

    • Vantagens:

      • Especialização: Cada backend pode ser otimizado para as necessidades específicas de cada plataforma (web e mobile).
      • Escalabilidade: Pode ser mais fácil escalar cada backend separadamente, dependendo da demanda específica de cada plataforma.
    • Desvantagens:

      • Duplicação de Esforço: Você pode acabar duplicando funcionalidades e lógica de negócio, o que pode aumentar o tempo de desenvolvimento e a complexidade de manutenção.
      • Sincronização de Dados: Garantir que os dados estejam sincronizados entre os dois backends pode ser desafiador.
  2. Sugestões para seu Projeto

    Dado que você mencionou que deseja um sistema que aguente um alto fluxo de usuários e requisições, eu recomendaria considerar o uso de um backend único (omnichannel). Isso pode simplificar bastante o desenvolvimento inicial e a manutenção contínua.

    Para o backend, você pode usar Node.js, que é bastante eficiente para lidar com um grande número de requisições simultâneas. Java também é uma ótima escolha se você precisa de robustez e desempenho, especialmente se você já tem alguma familiaridade com a linguagem.

  3. Sobre o Mobile

    Você mencionou React Native e Kotlin para o desenvolvimento mobile. React Native é uma excelente escolha se você deseja compartilhar código entre as versões iOS e Android, o que pode acelerar o desenvolvimento.

    Kotlin é ótimo para desenvolvimento Android nativo, mas se você optar por React Native, o backend não precisa ser especificamente em Java, pois React Native pode se comunicar com qualquer backend via APIs REST ou GraphQL.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.