monteirotf.com
6ID Trading Solutions · Corporativo

6ID (Ecossistema Distribuído)

Ecossistema para gerenciar licenças, autenticar usuários e administrar plataformas de trading, com API central, console web e cliente desktop para Windows.

API + console web + desktop
Arquitetura
.NET 8 ReadyToRun, binário único
Cliente Windows
Pydantic e Zod espelhados
Validação

O problema

Plataformas de trading precisavam gerenciar licenças, autenticar usuários e administrar operações em três frentes ao mesmo tempo: uma API central, um console web e um cliente desktop rodando na máquina de cada usuário.

A abordagem

Projetei o ecossistema inteiro: backend assíncrono em FastAPI com SQLAlchemy e Asyncpg para validação concorrente de licenças, console de administração em Next.js com validação espelhada entre Pydantic e Zod, e o cliente Windows em WPF no .NET 8, compilado com ReadyToRun num binário único e enxuto. Código fechado por política de segurança corporativa.

01

Arquitetura

Console web → API Gateway: HTTPSCliente desktop → API Gateway: HTTPS / RESTAPI Gateway → Core APICore API → PostgreSQL: leitura e escrita assíncronasCore API → Relatórios PDF: geraConsole web · Next.js 14 (App Router), React 18Console webNext.js 14 (App Router), …Cliente desktop · WPF, .NET 8, MVVMCliente desktopWPF, .NET 8, MVVMAPI Gateway · load balancerAPI Gatewayload balancerCore API · FastAPI, SQLAlchemy 2.0, PydanticCore APIFastAPI, SQLAlchemy 2.0, …PostgreSQL · Asyncpg, migrações AlembicPostgreSQLAsyncpg, migrações AlembicRelatórios PDF · ReportLabRelatórios PDFReportLab
  1. 01Console web → API Gateway: HTTPS
  2. 02Cliente desktop → API Gateway: HTTPS / REST
  3. 03API Gateway → Core API
  4. 04Core API → PostgreSQL: leitura e escrita assíncronas
  5. 05Core API → Relatórios PDF: gera
02

Decisões

  1. 01

    Camada de dados assíncrona

    Por quê Usei FastAPI com Asyncpg e SQLAlchemy 2.0 para atender validações de licença concorrentes vindas dos clientes desktop sem bloquear threads durante I/O.

  2. 02

    Cliente Windows compilado com flags de otimização do .NET 8

    Por quê Compilei com PublishReadyToRun, TieredPGO e ServerGarbageCollection=false para gerar um executável autocontido, com menor tempo de inicialização a frio e menos memória que um app WPF padrão.

  3. 03

    Validação espelhada entre Pydantic e Zod

    Por quê O backend valida os payloads com Pydantic e o console repete a validação no cliente com Zod e React Hook Form. Isso garante integridade antes do envio e barra requisições malformadas antes da API.

03

Números com fonte

Cada número aponta para o arquivo do repositório de onde saiu.

Versão do .NET do cliente desktop
.NET 8
fonte: README.md
Versão do Next.js
14
fonte: README.md
Versão do SQLAlchemy
2.0
fonte: README.md
04

Stack

  • FastAPI
  • Next.js
  • TypeScript
  • C# · WPF
  • PostgreSQL
  • Docker