Plataforma · Arquitetura de software

Sistemas que rodam sob pressão real.

A arquitetura de referência da TecLimit é desenhada para missão crítica: serviços .NET de alta performance no backend, React no web, Flutter e React Native no mobile — operados em malha distribuída, com observabilidade ponta a ponta, postura zero-trust e orçamentos de latência negociados desde o primeiro commit.

Runtime backend
.NET 10 LTS · ASP.NET Core · Minimal APIs
Runtime web
React 18+ · TypeScript · RSC
Runtime mobile
Flutter · React Native
Postura padrão
Zero-trust · observável · auditável
LIVE arquitetura de referênciamalha zero-trust
otel em todas as camadasp99 budget ativo
Clientes
WebReact
MobileFlutter/RN
Borda
CDN / WAFrate · cache · CSP
API GatewayOAuth2/OIDC · mTLS
Serviços frontend
React 18+TypeScript · RSC
OpenAPI → TS
malha de serviços
Núcleo .NET
.NET APIsMinimal APIs
DomíniosDDD · CQRS
WorkersAOT · Jobs
ConsumidoresKafka/RabbitMQ
Dados
PostgreSQLRLS · replicas
SQL ServerOLTP
Rediscache · session
LakehouseCDC · dbt
Observabilidade
OpenTelemetrytraces · métricas · logs
SLO / Error Budget
segurança contratos dados logging
01 · Princípios de arquitetura

Decisões antes
do código.

Toda arquitetura é uma teoria sobre o que pode falhar. Estes oito princípios não são slogans — são restrições de projeto que governam todo trade-off técnico em projetos TecLimit.

P.01

Tudo falha — desenhe pra isso

Timeouts, retries com backoff, circuit breakers, bulkheads e idempotência são padrão, não exceção. Nada de "happy path".

P.02

Performance é orçamento

Latência (p99), memória, alocações por request e custo por mil chamadas têm metas mensuráveis antes da feature existir.

P.03

Segurança é a primeira camada

Zero-trust, least privilege, criptografia em trânsito e repouso, rotação de segredos e SBOM auditável — desde o primeiro deploy.

P.04

Observabilidade ≥ logging

Traces distribuídos, métricas RED/USE, logs estruturados correlacionados — tudo via OpenTelemetry de ponta a ponta.

P.05

Domínio antes de framework

Modelagem por DDD, contratos explícitos, fronteiras bem definidas. Framework serve ao domínio — nunca o contrário.

P.06

APIs são contrato público

Versionadas, documentadas em OpenAPI, testadas com pact e estáveis por semântica — quebra de contrato é incidente.

P.07

Dados antes de feature

Schema migration first, multi-tenant desde o dia 1, particionamento e índices revisados em code review como código.

P.08

Reversível por padrão

Feature flags, deploys progressivos (canary, blue-green), expand-and-contract de schema. Voltar atrás precisa ser barato.

02 · Stack de referência

Backend, web
e mobile.

Três camadas, escolhas claras. Nem tudo precisa ser polyglot — concentração de stack acelera entrega, padroniza segurança e simplifica observabilidade.

Backend · core
.NET — runtime principal
A spinha dorsal de toda plataforma TecLimit é .NET. Performance de baixa alocação, throughput previsível em hot paths, ferramental de classe mundial e ciclo de releases anual com LTS — é a escolha defensável para serviços que não podem cair.
Runtime
.NET 10 LTS · ASP.NET Core · Minimal APIs · AOT quando aplicável
Padrões
DDD, Clean Architecture, CQRS pragmático, Mediator quando agrega valor
Persistência
EF Core · Dapper · SQL Server, PostgreSQL, Redis, RabbitMQ, Kafka
APIs
REST com OpenAPI, gRPC para alto volume interno, GraphQL onde justifica
Testes
xUnit, FluentAssertions, Testcontainers, NBomber para carga
Build
SDK 10 · Roslyn analyzers · Source generators · Multi-target onde necessário
Hot path sem alocações
Span<T>, ArrayPool, ValueTask e pooled buffers reduzem GC sob pico de carga.
Resiliência por padrão
Polly + Microsoft.Extensions.Resilience: retries, timeouts, circuit breakers e fallback declarativos.
DI nativo + AOT
Container nativo, source generators e AOT para startup sub-segundo em workers e APIs frias.
Observabilidade nativa
System.Diagnostics + OpenTelemetry exportando traces, métricas e logs sem agente externo.
Web · frontend
React — frontend principal
React 18+ com TypeScript estrito é o que sustenta nossas interfaces críticas — painéis operacionais, consoles administrativos, fluxos transacionais. Acessível, performático e auditável por design.
Stack
React 18+ · TypeScript strict · RSC quando aplicável (Next.js)
Estado
React Query/TanStack para server state, Zustand/Jotai para UI state, evitando overengineering
Estilo
Tailwind ou CSS Modules + tokens; design system próprio do cliente quando existir
Build
Vite ou Next.js · code-splitting agressivo · pré-busca priorizada por rota
Testes
Vitest, React Testing Library, Playwright para e2e, MSW para contratos de API
Acessibilidade
WCAG 2.2 AA mínimo · axe-core no CI · ARIA semântico, sem hacks
Core Web Vitals em CI
LCP < 2.5s, CLS < 0.1, INP < 200ms — falhar a meta bloqueia merge.
Sem zumbis no bundle
Análise contínua de tamanho, tree-shaking e remoção de dependências mortas.
Tipagem fim-a-fim
OpenAPI → tipos TS gerados; contrato quebrado vira erro de compilação, não bug em produção.
Estado offline-tolerante
Optimistic updates, cache local persistente e reconciliação com servidor sob falha de rede.
Mobile · iOS & Android
Flutter & React Native — escolha por projeto
Não há religião de plataforma. Flutter quando UI consistente e performance gráfica importam mais; React Native quando convergência com o web e bibliotecas nativas pesam mais. A decisão é técnica, não política.
Flutter
Dart 3 · Riverpod, GoRouter, Dio, Freezed, Drift
React Native
RN 0.74+ · New Architecture (Fabric · TurboModules), Reanimated 3, Hermes
Critério
Decidimos por projeto: UX customizada e jornadas gráficas → Flutter; reuso de stack e plugins ricos → RN
Nativo
Módulos Swift/Kotlin quando há ganho real — biometria, secure enclave, ML Kit, hardware específico
Distribuição
App Store · Play · Firebase App Distribution · CodePush ou Shorebird quando aplicável
Crash & telemetria
Sentry, Crashlytics, OpenTelemetry mobile com correlação ao backend
60fps consistente
Frame budget de 16ms protegido — listas virtualizadas, animações em thread dedicada, imagens decodificadas off-main.
Offline-first onde importa
Sync com conflict resolution, fila local resiliente, cache cifrado em disco.
🛡
Hardening por padrão
Certificate pinning, jailbreak/root detection, Keychain/Keystore, ofuscação e proteção contra repackaging.
Bundle enxuto
App size monitorado release a release; assets responsivos, lazy splitting de rotas, tree-shaking nativo.
03 · .NET em profundidade

Por que .NET
é nossa escolha.

Três razões técnicas — não folclóricas — para .NET ser o backend de referência da TecLimit em 2026.

Performance

Throughput previsível, GC sob controle

JIT tier-1, AOT para serviços frios, pooling agressivo e Span<T> em hot paths entregam latência p99 estável mesmo sob 10× a carga típica — sem reescrever em Rust ou Go.

  • Span/Memory: parsing sem alocação em ingestores de alto volume.
  • ValueTask: caminhos quentes evitam Task heap quando o resultado é síncrono.
  • Native AOT: cold start < 100ms para workers serverless e jobs efêmeros.
  • SIMD: cripto e processamento numérico vetorizados via System.Numerics.
Segurança

Contrato seguro do compilador ao deploy

Tipagem forte, nullable reference types, analyzers no build e SBOM automático elevam o piso de segurança antes do código rodar — defeito caro vira erro de compilação.

  • NRT: null bugs eliminados na compilação, não em produção.
  • Roslyn analyzers: SCA + regras internas TecLimit como warnings-as-errors.
  • Microsoft.Identity: OAuth2/OIDC, MSAL e Entra integrados nativamente.
  • SBOM: CycloneDX/SPDX gerado no build com supply-chain attestation.
Ecossistema

Multi-cloud, multi-runtime, sem lock-in

.NET roda nativamente em Linux, Windows, ARM64 e containers. Azure, AWS, GCP e on-premises são alvos de primeira classe — escolha de cloud é decisão de negócio, não restrição técnica.

  • Azure-native: App Service, Container Apps, Functions, AKS, Service Bus, Cosmos DB.
  • Cloud-portable: EKS, Lambda, Cloud Run e on-prem com a mesma stack.
  • Aspire: orquestração local de microsserviços com observabilidade pronta.
  • LTS previsível: 3 anos de suporte por versão LTS, ciclo anual de releases.
04 · Diagrama de referência

Arquitetura
distribuída.

Topologia padrão de uma plataforma TecLimit. Borda → núcleo → dados, com observabilidade transversal em todas as camadas e contratos versionados entre serviços.

Borda · clientes
Web
React SPA / SSR
CDN, edge cache, Web Vitals em CI, CSP estrita.
Mobile
Flutter / React Native
Sync offline, pinning, biometria, OTA controlado.
API Gateway
Auth · Rate · WAF
OAuth2/OIDC, rate-limit por chave, WAF gerenciado, mTLS interno.
Núcleo · serviços .NET
BFF / API
ASP.NET Core Minimal APIs
REST + gRPC, OpenAPI versionado, contratos pact-tested.
Domínios
Microsserviços .NET
Bounded contexts, CQRS pragmático, idempotência por padrão.
Workers
Background services
Hosted services, AOT, processamento assíncrono e jobs agendados.
Mensageria
Kafka · RabbitMQ · Service Bus
Outbox/Inbox, dead-letter queues, replays auditáveis.
Dados · observabilidade
OLTP
PostgreSQL · SQL Server
Migrations versionadas, particionamento, read replicas, RLS.
Cache
Redis
Sessão, cache de leitura, rate-limit distribuído.
Analytics
Lakehouse · OLAP
Snowflake/BigQuery/Databricks, CDC streaming, dbt.
Observabilidade
OpenTelemetry · Grafana
Traces, métricas e logs unificados; SLO dashboards por domínio.
1 Cliente 2 Gateway · Auth 3 BFF · Serviço de domínio 4 Cache / DB / Bus 5 Resposta · evento OTel em todas as etapas
05 · Segurança em camadas

Postura
zero-trust.

Nenhum componente confia em outro por endereço IP. Identidade, escopo e atestação são exigidos a cada hop. Threats modelados e revisados a cada release.

L0

Supply chain

SBOM CycloneDX/SPDX a cada build, dependências assinadas, attestation SLSA, scan de vulnerabilidades em CI.

L1

Borda

WAF gerenciado, rate-limit, CSP estrita, mTLS interno, certificate pinning em mobile.

L2

Identidade

OAuth2/OIDC com PKCE, MFA obrigatório em superfícies privilegiadas, tokens de curta duração, refresh rotacionado.

L3

Autorização

RBAC + ABAC, política como código (OPA), least privilege em cada serviço e em cada query de banco.

L4

Dados

TLS 1.3 em trânsito, criptografia em repouso por linha quando necessário, KMS gerenciado, rotação automática.

L5

Auditoria

Audit log imutável, trilha completa de quem-fez-o-quê-quando, retenção alinhada a LGPD/GDPR/SOC2.

Modelo de ameaças · cobertura padrão

Injection (SQL, command, prompt)Parâmetros tipados, allowlists, sanitização ativa em IA
Mitigado
Quebra de autenticaçãoToken de curta duração, MFA, anomaly detection em login
Mitigado
SSRF · IDOREgress allowlist por serviço, autorização contextual obrigatória
Mitigado
Insider threatJust-in-time access, break-glass auditado, separação de funções
Monitorado
Supply chain attackPinning, lockfiles, attestation, scan contínuo de dependência
Monitorado
Zero-day em runtimePatching de janela curta, deploy reversível, defesa em profundidade
Em vigília
06 · Orçamentos de performance

Metas que
existem antes do código.

Orçamentos típicos de uma plataforma TecLimit. Cada projeto recalibra com base no SLO de negócio, mas o piso é negociado antes da primeira feature ir para produção.

Backend · API JSON
Latência p50Hot path, cache quente
< 30 ms
Latência p99Pico de carga, sem degradação visível
< 250 ms
Throughput por instânciaRequest mediano, 4 vCPU
≥ 8.000 RPS
Alocação por requestHot path, sem JSON pesado
< 4 KB
Cold start (AOT)Workers serverless, jobs efêmeros
< 100 ms
Web · Core Web Vitals
LCPLargest Contentful Paint, p75
< 2.5 s
INPInteraction to Next Paint, p75
< 200 ms
CLSCumulative Layout Shift, p75
< 0.1
JS no carregamentoBundle inicial, gzipped
< 180 KB
TTI em 4G simuladoTime to Interactive, dispositivo médio
< 4 s
07 · Estratégia de dados

Dados sob
controle.

Schema é contrato. Migration é código revisado. Particionamento é decisão de arquitetura — não item de roadmap futuro.

OLTP

Transacional consistente

PostgreSQL como default; SQL Server quando o cliente exige. Migrations idempotentes versionadas, expand-and-contract, RLS ativo desde dia 1, particionamento por chave de tenancy ou tempo.

PostgreSQLSQL ServerEF CoreDapperLiquibase / EF Migrations
Mensageria

Eventos com garantia

Outbox transacional, inbox idempotente, dead-letter com replay. Kafka para alto volume e ordering por chave; RabbitMQ/Service Bus para topologia clássica e RPC seguro.

KafkaRabbitMQAzure Service BusMassTransitOutbox
Cache & estado

Latência sub-milisegundo

Redis para cache de leitura, sessão, rate-limit distribuído e idempotência. Estratégias write-through e cache-aside escolhidas por caso, sempre com TTL e invalidação explícita.

RedisStackExchange.RedisOutput CacheSliding TTL
Analytics

Lakehouse, não silo

CDC streaming via Debezium ou Fivetran, modelagem com dbt, lakehouse em Snowflake, BigQuery ou Databricks. Operacional permanece operacional; analítico se reconcilia em latência aceitável.

SnowflakeBigQueryDatabricksdbtDebezium
08 · Entrega contínua

Do commit
ao deploy.

Pipeline padrão TecLimit. Cada estágio tem critério de saída automático — falhar uma porta não é negociável.

01 · Commit
Branch protegida

Trunk-based, PR pequena, conventional commits, signing obrigatório.

02 · CI
Build + testes

Lint, build AOT-aware, testes unit + integration com Testcontainers, cobertura mínima por domínio.

03 · Quality gates
Análise estática

Roslyn, SonarQube, SCA de dependências, secrets scan, SBOM gerado e assinado.

04 · Performance
Benchmark gate

BenchmarkDotNet em hot paths críticos; regressão > 5% bloqueia merge automaticamente.

05 · Staging
Smoke + e2e

Deploy automático, smoke tests, Playwright e2e, contract testing pact entre serviços.

06 · Prod
Canary + rollback

Canary com SLO probe, blue-green com switch instantâneo, rollback automático em alerta.

09 · Observabilidade

Sistema visível
é sistema confiável.

Quatro sinais, uma stack. OpenTelemetry como padrão único de instrumentação — backend, web e mobile — para correlação ponta a ponta de qualquer requisição.

RED metrics
Rate · Errors · Duration

Métricas de tráfego de cada endpoint e dependência, painéis padronizados por serviço.

Tracing
Spans correlacionados

Request-id propagado do cliente ao banco, head sampling adaptativo, tail sampling em erro.

Logs
Estruturados, sempre

Serilog em JSON, contexto enriquecido, correlation id, sem PII em texto livre.

SLO
Erro budget como contrato

SLO definido por domínio, alerta quando o budget esgota — pausa em features, foco em estabilidade.

“Arquitetura é o conjunto de decisões caras de reverter. Tomá-las cedo, com critério, é o que separa software que opera de software que sobrevive.
— Posicionamento técnico TecLimit

Sua plataforma merece esse nível de cuidado.

Compartilhe seu cenário — escala, SLA, restrições regulatórias — e devolvemos uma arquitetura defensável, não um deck genérico.