AWS Architecture Review
A cost-effective Agentic AI Workflow backend — self-contained, production-verified, and running at a fraction of a dollar.
Question 01
Yes — it's already lean, with just two trimmable pieces. The 29 deployed resources break down like this.
| Component | Count | Needed for Agentic Workflows? | Est. cost |
|---|---|---|---|
| Lambda (workflow API) | 1 | ✓ Core | ~free (1M req free tier) |
| DynamoDB (4 tables, on-demand + PITR) | 4 | ✓ Core workflows · executions · audit · templates | ~$1–5/mo |
| API Gateway HTTP | 1 | ✓ Core | ~$0.04/mo |
| Lambda IAM role + DynamoDB policy | 3 | ✓ Core | free |
| CloudWatch logs (2) + alarms (2) | 4 | ✓ Core | ~free |
| S3 buckets ×2 + CodeBuild + role/policy/logs | 9 | ⚠ Build tooling only | ~$0.50/mo |
| Cost Explorer IAM policy + attachment | 2 | ✗ Not for workflows feeds the MesonX Pulse “costs” dashboard | free (IAM) |
The two exceptions
Everything else is core runtime. Only these two pieces sit outside the workflow path — and both cost almost nothing at idle.
This is a build pipeline that recompiles the Lambda zip in Linux. It's only needed when you deploy a new code version — it runs on demand, not 24/7, so it costs almost nothing at idle. It's deploy-time scaffolding, not runtime.
Lets the Lambda read ce:* and organizations:*. That powers the /api/v1/costs/* endpoints — the MesonX Pulse financial dashboard. It's a separate concern from Agentic workflows and costs nothing to keep.
Question 02
Yes — 100%. The workflow feature set is fully self-contained in 8423.
routers/workflows.py · routers/executions.py · routers/agents.py · services/executor.py · services/compiler.py · services/llm_provider.py/api/v1/agents → 9 agents · /api/v1/workflows workingRuntime path
Every workflow LLM call walks the same MesonX standard chain as the chatbot — the first provider that succeeds answers; an upstream hiccup never fails the graph.
(gemini-flash-latest)mesonx-flow/api-keys in Secrets Manager.(meta-llama/llama-3.1-8b-instruct)(anthropic.claude-3-5-sonnet-20241022-v2:0) — last resortconfig.model is honoured when it matches the provider's format — e.g. gemini-* → Gemini, org/slug → OpenRouter, anthropic.claude-* → Bedrock; otherwise the chain defaults apply.[MOCK] output — the workflow still completes instead of erroring.cost_usd are reported back per node in the execution result.