Flowlink Oracle · MVP architecture
Till startsidanOracle på ECS Fargate
Detta är MVP-designen i källkoden. En långlivad Fargate-runtime behandlar flera Oracle-definitioner men håller varje kunds och pipelines state isolerat.
Användare
│
├── Flowlink Oracle GUI (statisk frontend + Cognito)
│ └── Oracle API (nästa steg: C# / ASP.NET)
│ └── OracleDefinitions (DynamoDB)
│
Flowlink MSK, topic traton.rnd.dev
│
└── Oracle Runtime (F# / ECS Fargate, 1 task i MVP)
├── OracleFlowState (DynamoDB)
├── OracleOutbox (DynamoDB)
└── confidencelevel.modified tillbaka till MSK
Vad runtimeen gör
State isoleras med oracleId + artifactRootId + pipelineRunId. Två tester från olika GitLab-jobb i samma pipeline möts, men en ny push till main får ett nytt pipeline-run och separat state.
- Två konfigurerade
test.executedmåste ha verdictPASS. validUntilsätts per flow; utgångna flows blirEXPIRED.- Ett event registreras idempotent och CLME-actionen skrivs först till outbox.
AWS-tjänster och säkerhet
ECS FargateMSK IAMDynamoDBCloudWatch Logs
- Fargate-tasken kör i privata subnät och använder befintlig Flowlink MSK-client security group.
- Task-rollen kan bara läsa/skriva
traton.rnd.dev, använda gruppenflowlink-oracle-*och nå sina DDB-tabeller. - IAM/SASL över TLS används. Bootstrap-brokers skickas vid deploy och finns inte i Git.
MVP nu och nästa steg
Nu: F# runtime, Fargate, DynamoDB-state och MSK round-trip för två tester till confidencelevel.modified.
Nästa: API/GUI för definitioner, generiska JSON-path/regex-conditions och conditions från flera pipelines.
Fullständig, versionshanterad beskrivning finns i repositoryts docs/architecture.md.