Technische & betriebliche Architektur

Wie Farmso gebaut und betrieben wird: Web- + Mobile-Clients, das Cloudflare-Workers-Backend, D1/R2-Speicher, Solana-Verankerung, passwortlose Authentifizierung, Offline-Sync und Multi-Environment-Betrieb.

Aktualisiert 2026-07-12 · 8 min

Farmso ist eine moderne, Edge-native Plattform. Die Clients sind schlank und schnell; Logik und Daten leben im globalen Netzwerk von Cloudflare; und vertrauenskritische Datensätze können auf einer öffentlichen Blockchain verankert werden. Diese Seite erklärt das technische Design und wie die Plattform betrieben wird.

Systemüberblick

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

Die Bausteine

Web-App

React + TanStack Router/Query, gebaut mit rsbuild/Vite, bereitgestellt auf Cloudflare Pages. Das Backoffice: Dashboards, Compliance, Rechnungsstellung, Analysen.

Mobile-App

Expo / React Native (Offline-first), über EAS für iOS und Android ausgeliefert. Kamera- + Bluetooth-EID- + NFC-Erfassung, mit einem lokalen Outbox, das synchronisiert.

Backend (cf-back)

Cloudflare Workers + Hono + Drizzle ORM. Eine einzige API für Web und Mobile, mit Organisationsisolierung pro Anfrage und tarifbasierter Funktionsfreischaltung.

Datenbank — D1

Cloudflare D1 (SQLite am Edge). Versionierte Migrationen; getrennte dev-, staging- und prod-Datenbanken.

Dateien — R2

Cloudflare R2 Objektspeicher für Dokumente, Inspektionsfotos, Etiketten und Exporte.

On-Chain — Solana

Das bereitgestellte pet_did Anchor-Programm verankert einen Hash des Datensatzes jedes Tieres; Farmso verwaltet die Schlüssel, sodass Nutzer nie Wallets berühren.

Authentifizierung & Mandantentrennung

Die Anmeldung ist passwortlos: AWS SES sendet einen Einmalcode per E-Mail, und bei Erfolg stellt das Backend sein eigenes signiertes JWT aus (kein Drittanbieter-Identitätsprovider). Jede Anfrage trägt das Token plus die aktive Organisation, und die API begrenzt alle Daten auf diese Organisation — ein Mandant kann niemals die Datensätze eines anderen sehen. Der Funktionszugriff wird durch den Abo-Tarif der Organisation gesteuert, serverseitig geprüft, sodass dieselbe Regel gilt, egal ob eine Anfrage aus dem Web oder der Mobile-App kommt.

Offline-first-Sync

Die Mobile-App ist für Orte ohne Empfang gebaut. Lesevorgänge werden aus einem Cache auf dem Gerät bedient; Schreibvorgänge (ein Tier registrieren, eine Behandlung erfassen, ein Scan, eine Inspektion) werden in ein lokales Outbox gelegt und als „eingereiht“ zurückgegeben. Kehrt die Verbindung zurück, wird das Outbox automatisch geleert — Scans werden als ein idempotenter Stapel wiederholt, sodass nichts doppelt entsteht, und etwaige Konflikte werden angezeigt, statt stillschweigend verworfen zu werden. Sie können dies im Bildschirm Pending Changes der App beobachten und verwalten.

Betrieb

Farmso betreibt drei isolierte Umgebungen — Entwicklung, Staging und Produktion — jeweils mit eigener Datenbank, eigenem Speicher-Bucket und eigenem API-Host (Produktion ist api.farmso.org). Der Code fließt über Pull-Requests in Staging und dann in den Main-Branch. Hintergrundarbeiten (Blockchain-Verankerung, nächtliche Anomalie-Scans, monatliche KI-Nutzungsabrechnung, Zertifizierungsablauf) laufen über Cloudflare Queues und geplante Cron-Trigger. Abrechnung und gemessene KI-Nutzung werden über Stripe abgewickelt.

Sicherheitslage: signierte JWTs, strikte Datenisolierung pro Organisation, serverseitige Tarifdurchsetzung, verschlüsselter Transport (HTTPS) überall und optionale Manipulationssicherheit über eine öffentliche Blockchain für die wichtigsten Datensätze.