Arquitetura técnica e operacional

Como o Farmso é construído e operado: clientes web + mobile, o backend em Cloudflare Workers, armazenamento D1/R2, ancoragem na Solana, autenticação sem senha, sincronização offline e operações multiambiente.

Atualizado 2026-07-12 · 8 min

O Farmso é uma plataforma moderna, nativa da borda. Os clientes são leves e rápidos; a lógica e os dados vivem na rede global da Cloudflare; e os registros críticos de confiança podem ser ancorados em uma blockchain pública. Esta página explica o desenho técnico e como a plataforma é operada.

Visão geral do sistema

Clients

Web app
React + TanStack · Cloudflare Pages
Mobile app
Expo / React Native · offline-first · EAS

Edge API

Farmso API — Cloudflare Workers + Hono + Drizzle
Passwordless JWT auth · per-organisation isolation · plan-based feature gating

Data & services

D1
SQLite at the edge
R2
Documents · photos · exports
Solana
pet_did on-chain anchoring
AWS SES
One-time login codes · email
Stripe
Billing · metered AI usage
Queues & Cron
Anchoring · scans · billing jobs

As peças

App web

React + TanStack Router/Query, construído com rsbuild/Vite, implantado no Cloudflare Pages. O back-office: painéis, conformidade, faturamento, análises.

App mobile

Expo / React Native (offline-first), entregue via EAS para iOS e Android. Captura por câmera + EID Bluetooth + NFC, com uma caixa de saída local que sincroniza.

Backend (cf-back)

Cloudflare Workers + Hono + Drizzle ORM. Uma única API para web e mobile, com isolamento de organização por requisição e liberação de recursos por plano.

Banco de dados — D1

Cloudflare D1 (SQLite na borda). Migrações versionadas; bancos de dev, staging e prod separados.

Arquivos — R2

Armazenamento de objetos Cloudflare R2 para documentos, fotos de inspeção, etiquetas e exportações.

On-chain — Solana

O programa Anchor pet_did implantado ancora um hash do registro de cada animal; o Farmso gerencia as chaves para que os usuários nunca toquem em carteiras.

Autenticação e multilocação

O login é sem senha: o AWS SES envia por e-mail um código único e, ao dar certo, o backend emite seu próprio JWT assinado (sem provedor de identidade externo). Cada requisição carrega o token mais a organização ativa, e a API restringe todos os dados a essa organização — um locatário nunca pode ver os registros de outro. O acesso a recursos é liberado pelo plano de assinatura da organização, verificado no servidor, então a mesma regra se aplica quer a requisição venha do web ou do app mobile.

Sincronização offline-first

O app mobile é feito para lugares sem sinal. As leituras são servidas de um cache no dispositivo; as escritas (registrar um animal, lançar um tratamento, uma leitura, uma inspeção) são colocadas em uma caixa de saída local e retornadas como “na fila”. Quando a conectividade volta, a caixa de saída é esvaziada automaticamente — as leituras são reproduzidas como um único lote idempotente, então nada é duplicado, e quaisquer conflitos são exibidos em vez de descartados em silêncio. Você pode acompanhar e gerenciar isso na tela Pending Changes do app.

Operações

O Farmso opera três ambientes isolados — desenvolvimento, staging e produção — cada um com seu próprio banco de dados, bucket de armazenamento e host de API (produção é api.farmso.org). O código flui por pull requests para o staging e depois para o branch main. O trabalho em segundo plano (ancoragem em blockchain, varreduras noturnas de anomalias, cobrança mensal de uso de IA, expiração de certificações) roda em Cloudflare Queues e gatilhos cron agendados. A cobrança e o uso medido de IA são tratados via Stripe.

Postura de segurança: JWTs assinados, isolamento estrito de dados por organização, aplicação de planos no servidor, transporte criptografado (HTTPS) em toda parte e prova de adulteração opcional em blockchain pública para os registros que mais importam.