services.md•3.44 kB
### Micro Serviços:
Os microserviços são uma abordagem arquitetural que consiste em construir um aplicativo como um conjunto de serviços pequenos e independentes, cada um executando um processo específico e atendendo a uma função bem definida. Essa abordagem oferece uma série de benefícios que tornam os microserviços uma escolha atraente para o desenvolvimento de software moderno.
**Escalabilidade e Resiliência**
**Os microserviços permitem escalar e distribuir componentes de forma independente, o que melhora a resiliência do sistema. Se um serviço falhar, não afetará necessariamente todo o sistema, pois outros serviços continuarão funcionando normalmente.
**Facilidade de Manutenção e Evolução**
Com microserviços, cada serviço é independente, o que facilita a manutenção e evolução do sistema. As equipes podem trabalhar em serviços separados, implementar atualizações sem interromper todo o sistema e evoluir cada serviço conforme necessário.
**Agilidade e Rapidez no Desenvolvimento**
Os microserviços permitem que equipes trabalhem de forma independente em diferentes serviços, o que acelera o desenvolvimento. Isso possibilita a entrega contínua, onde pequenas atualizações podem ser implementadas rapidamente e entregues aos usuários sem interrupções.
**Flexibilidade Tecnológica**
Cada serviço pode ser desenvolvido usando a tecnologia mais adequada para sua função específica. Isso oferece flexibilidade para escolher as melhores ferramentas e tecnologias para cada serviço, sem estar preso a uma única stack tecnológica.
#### Detalhamento dos Serviços da Plataforma
1. **Authorization**:
- Responsabilidades:
- Configuração de novos diretórios e projetos.
- Cadastro de conectores em projetos ou diretórios.
- Notificação de atualizações ou inserções de conectores para outros serviços.
- Gerenciamento de usuários, grupos de segurança e categorias.
- Autenticação de usuários via login, senha ou OAuth.
- Geração de tokens JWT no login do usuário.
- Comunicação com os demais serviços via fila de mensagem.
2. **Communication**:
- Responsabilidades:
- Envio de mensagens diretas para usuários (email, push, SMS, etc.).
- Envio de mensagens via email, push ou notificação na plataforma.
- Execução de rotinas/tarefas agendadas.
3. **Store**:
- Responsabilidades:
- Controle de produtos cadastrados na plataforma.
- Direcionamento e monitoramento do fluxo de compra de produtos.
- Gerenciamento de produtos e transações.
4. **Storage**:
- Responsabilidades:
- Recebimento e entrega de arquivos relacionados ao contexto do usuário.
- Enriquecimento de conteúdos através da vinculação de conectores.
- Atualização, entrega e busca de arquivos.
5. **Insights**:
- Responsabilidades:
- Registro de eventos do usuário e da plataforma.
- Consultas textuais e criação de imagens com base em textos.
- Execução de rotinas/tarefas agendadas.
6. **Content Manager**:
- Responsabilidades:
- Entrega de experiências de conteúdo (cursos, trilhas).
- Gestão de informações salvas pelos usuários.
- Controle de fluxos para criação e edição de arquivos.
- Disponibilização de conteúdo para grupos ou usuários.
- Gerenciamento de revisores e fluxos de revisão.
