Skip to main content
Glama
Introdução.md6.52 kB
### Estrutura Geral da Plataforma: A plataforma é composta por 6 microsserviços em C#, utilizando a estrutura Functions. Uma visão geral da plataforma pode ser baseada em três **entidades** principais: **1. Diretório:** - Representa o nível mais alto de organização, proporcionando uma separação lógica. - Pode conter diversos projetos. **2. Projeto:** - Representa um agrupamento menor de recursos e usuários dentro de um diretório. - Pode haver vários projetos dentro de um diretório. **3. Conector:** - Abstrai determinados fluxos de trabalho realizados pelos serviços. - Pode estar presente no diretório, autorizando seu uso em todos os projetos do diretório, ou no projeto, limitando-se ao contexto relacionado. - Um conector pode ter várias implementações. Exemplo: O conector IConnectorGenerativeIa possui duas implementações: Api.Digitalpages.connector.Vertex: utiliza as APIs do Germini do Google. Api.DigitalPages.connector.OpenAi: utiliza as APIs do OpenAI. - Um projeto ou diretório pode apresentar um ou mais conectores. Ao utilizar as três entidades principais da plataforma de forma adequada, é possível construir diversas soluções com a mesma base, aproveitando ao máximo a abstração em sua construção. Alguns exemplos de casos de uso: **Projeto 01** - Foco na gestão de cursos. - Entrega e catologação de vídeos. - Análise de proficiência. - Conteúdo e feedback personalizado. **Project 02** - Foco na entrega de conteúdos. - Indicação de conteúdos de interesse do usuário. **Project 03** - Foco na manutenção em fábricas. - Análise de dados de equipamentos em tempo real. A escolha correta dos conectores, com base nas diferentes necessidades, garante o sucesso da utilização da plataforma. Para cada projeto, a configuração ideal seria a seguinte: [![](https://mermaid.ink/img/pako:eNqVksFqwzAMhl8l6NzC1t5yK9sYgRYKZTv5ImwlcUnkoiiF0vTdq7AeCltGa2OQJX3_j43O4FMgyIHkPWIl2DrObDnYStqT1-zl1UE2DPP5MFi2eEvMlk6yJhSOXFk1t4LtB8GdHazI7kqsHyzR161F38unpaxeRh-J_WmDbKKjztMqn8QkqPFIxeoO_oUv_sZ_nMPtPdPuE3jBXaxq7b46kv_cl4-4Z9P2E3yR7iCYQUvSYgw2EedRwoHW9qsOxoZAJfaNjuIXa8Ve0-7EHnKVnmbQHwIq3cYI8hKbji5XmmDEYg?type=png)](https://mermaid.live/edit#pako:eNqVksFqwzAMhl8l6NzC1t5yK9sYgRYKZTv5ImwlcUnkoiiF0vTdq7AeCltGa2OQJX3_j43O4FMgyIHkPWIl2DrObDnYStqT1-zl1UE2DPP5MFi2eEvMlk6yJhSOXFk1t4LtB8GdHazI7kqsHyzR161F38unpaxeRh-J_WmDbKKjztMqn8QkqPFIxeoO_oUv_sZ_nMPtPdPuE3jBXaxq7b46kv_cl4-4Z9P2E3yR7iCYQUvSYgw2EedRwoHW9qsOxoZAJfaNjuIXa8Ve0-7EHnKVnmbQHwIq3cYI8hKbji5XmmDEYg) <!-- ``` mermaid erDiagram "Project 01" ||--|| "IConnectorLearning" : "" "Project 01" ||--|| "IConnectorStorageContentEnrichmentV3" : "" "Project 01" ||--|| "IConnectorProficiencyManagement" : "" "Project 01" ||--|| "IConnectorGenerativeIA" : "" "Project 02" ||--|| "IConnectorManagedContent" : "" "Project 02" ||--|| "IConnectorInsightsUser" : "" "Project 03" ||--|| "IConnectorManagedContent " : "" "Project 03" ||--|| "IConnectorIot " : "" ``` --> Seguindo essa lógica, qualquer funcionalidade pode ser inserida ou atualizada de forma eficiente, atribuindo o desenvolvimento de conectores para times especialistas sem a necessidade de um conhecimento profundo do serviço que será utilizado, tornando o paralelismo algo realmente visível no dia a dia. ### Tópicos: - [Micro serviços da plataforma](/Organizar/services) - [Topologia na Azure via AKS](/Topologias) ### Leituras recomendadas: > **Patterns of Distributed Systems** Este é um repositório no GitHub que aborda uma variedade de padrões de design para sistemas distribuídos, incluindo aqueles relevantes para arquiteturas de microserviços. Ele fornece uma visão geral dos padrões com exemplos de implementação. - github.com/alexandreroman/patterns-of-distributed-systems > **Microservices Patterns** Este livro escrito por Chris Richardson explora uma variedade de padrões de design específicos para arquiteturas de microserviços. Ele cobre padrões de design fundamentais, como Service Decomposition, Database per Service, e Event Sourcing. - microservices.io/patterns > **Pattern: API Gateway** Este é um padrão comum em arquiteturas de microserviços, onde um único ponto de entrada (API Gateway) é usado para rotear solicitações do cliente para os serviços subjacentes. Este artigo da Microsoft Docs fornece uma visão geral detalhada do padrão e sua implementação. - docs.microsoft.com/en-us/azure/architecture/patterns/api-gateway <!-- Circuit Breaker Pattern: O padrão Circuit Breaker é essencial para garantir a resiliência em arquiteturas de microserviços, permitindo que o sistema lide com falhas em serviços dependentes de forma eficaz. Este artigo da Microsoft Docs descreve o padrão e sua implementação. Link: docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker Saga Pattern: O padrão Saga é usado para manter a consistência dos dados em sistemas distribuídos, especialmente em operações que abrangem vários serviços. Este artigo do Microsoft Docs fornece uma visão geral do padrão e sua implementação. Link: docs.microsoft.com/en-us/azure/architecture/reference-architectures/saga/saga --> > **Repository Pattern:** O padrão Repository separa a lógica de acesso a dados da lógica de negócios em uma aplicação. Ele fornece uma camada de abstração sobre o armazenamento de dados, permitindo que o restante da aplicação interaja com os dados por meio de uma interface de repositório. - docs.microsoft.com/en-us/aspnet/core/data/repository > **Dependency Injection (DI)** O padrão Dependency Injection é uma técnica para injetar dependências de forma transparente em uma classe, em vez de criar ou instanciar essas dependências dentro da própria classe. Isso promove a modularidade, a reutilização e a testabilidade do código. - docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection > **Factory Method Pattern** O padrão Factory Method define uma interface para criar um objeto, mas permite que as subclasses decidam qual classe instanciar. Ele fornece uma maneira de delegar a lógica de criação de objetos para subclasses, promovendo o encapsulamento e a flexibilidade. > **Observer Pattern** O padrão Observer define uma relação de um para muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente. Ele é útil para implementar comunicação assíncrona e desacoplada entre objetos.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server