Loading…
Loading…
Decision tables, state machines, and integration hooks generated end-to-end on the Archiet pipeline. ArchiMate-validated business services. The reference for data-driven business logic across Flask, NestJS, Django, and Laravel renderers.
Decision tables
Data-driven (JSON config)
State machines
Transitions + audit log
Stack
Flask + SQLAlchemy + Next.js
Compliance
SOC 2 + GDPR matrices
Integration adapters
27 templated
ArchiMate validation
BusinessService check passing
Operate IQ is an operations platform built around two core mechanics: (1) decision tables that convert structured input into a deterministic outcome, and (2) workflow pipelines that chain validation, transformation, decision evaluation, integration calls, and persistence. Both are loaded from JSON configs at runtime, not registered in code — which means business owners can change rules without redeploying.
It was the forcing function for the data-driven business-logic patterns now generated across all four major web stacks. Before Operate IQ, decision tables were emitted as code-registered callables — non-serialisable, redeploy-required to change. After Operate IQ, every stack ships JSON-config-driven decision and pipeline services.
Data-driven decision engine
Loads rules from app/config/decision_models.json. Operator-based conditions (>=, <=, in, contains, ...). Hit policies: FIRST (return first match) or COLLECT (return all). Input validation on every evaluation request. No code-registered callables — everything is serialisable.
Pipeline service
Loads pipelines from app/config/pipelines.json. Step types: validate, transform, decision, fetch, save, transition, integration, notify. Entity resolution and persistence within steps. Same pattern across NestJS, Laravel, Django, and Flask renderers.
State-machine transitions
Entities with model_def.transitions get POST /:id/transitions/:trigger endpoints, from-state guard validation, and a GET /:id/transitions endpoint listing available transitions. availableTransitions() helpers on models and services.
DDD-aware emission
Controllers, services, models, and serializers branch on model_def.ddd_pattern: value_object (no HTTP routes), domain_event (append-only — GET + POST only), repository / query (read-only — GET only), aggregate_root (full CRUD + optimistic locking + command dispatch).
BusinessService elements are validated against the platform substrate registry before generation. Orphan services produce a structured warning, not silent generation failure.
Application services that orchestrate decision tables and pipelines must declare their dependencies in the genome — the validator enforces this so generated services never reference undefined collaborators.
Compliance overlays (SOC 2, GDPR) are emitted alongside the generated code as control matrices and DSAR runbooks. They reference the same ArchiMate elements so audit traceability is bidirectional.
ArchiMate BusinessService check now treats decision-engine entities as valid business services, not orphan elements. Unblocked delivery on this build.
Identifier sanitization: digit-prefixed names ("3pl_logistics") are sanitized to safe Python identifiers ("three_pl_logistics") at codegen time, preventing AST syntax errors in generated route files.
decision_bp.py auto-sanitises trigger names containing reserved Python words (class, def, return, etc.) so generated Flask blueprints import cleanly.
The defect-feedback button is now excluded from generated customer output — it is an internal QA tool, not a feature for the deployed app.
Decision engines + pipeline services + state machines ship in every Archiet workspace, on every supported stack. Describe the rules and the workflow in your PRD; the platform emits production-ready code that loads rules from JSON config — no redeploy to change them.