🏗️ AWS Serverless Evolution: Zero-Infrastructure AI-Enhanced Political Intelligence
🎯 Amazon Bedrock · Serverless First · AWS Well-Architected
📋 Document Owner: CEO | 📄 Version: 2.0 | 📅 Last Updated: 2026-02-24 (UTC)
🔄 Review Cycle: Quarterly | ⏰ Next Review: 2026-05-20
🏢 Owner: Hack23 AB (Org.nr 5595347807) | 🏷️ Classification: Public
"At Hack23 AB, we have made a strategic decision to build our future on AWS serverless architecture. This means zero infrastructure management, no Kubernetes, no containers to maintain—just pure serverless compute, managed AI services, and AWS's deep expertise in security and compliance. By standardizing entirely on AWS, we eliminate operational complexity and leverage Amazon Bedrock for all AI capabilities. This document openly shares our AWS-first roadmap for transforming Riksdagsmonitor into an AI-enhanced political intelligence platform built on the most mature serverless ecosystem in the industry."
— James Pether Sörling, CEO, Hack23 AB
| Document | Focus | Description |
|---|---|---|
| Architecture | 🏛️ Current | C4 models (Context, Container, Component) |
| Data Model | 📊 Current | Entities, schemas, relationships |
| Flowcharts | 🔄 Current | Process flows and data pipelines |
| State Diagrams | 🔄 Current | System state transitions |
| Mindmaps | 🧠 Current | Conceptual system maps |
| SWOT | 💼 Current | Strategic position assessment |
| Future Architecture | 🚀 This Document | AWS serverless roadmap, AI enhancement |
| Future Data Model | 📊 Future | Aurora, DynamoDB, Neptune data architecture |
| Future Flowcharts | 🔄 Future | Bedrock AI workflows, Step Functions orchestration |
| Future State Diagrams | 🔄 Future | AI-enhanced state transitions, event-driven workflows |
| Future Mindmaps | 🧠 Future | Future capability evolution, AWS service relationships |
| Future SWOT | 💼 Future | Future strategic opportunities |
| Security Architecture | 🛡️ Security | Defense-in-depth controls |
| Future Security Architecture | 🛡️ Future | Planned AWS security enhancements (GuardDuty, WAF) |
| Threat Model | 🎯 Security | STRIDE threat analysis |
This document outlines the comprehensive architectural evolution roadmap for Riksdagsmonitor over the next 3-11 years (2026-2037). The vision transforms the platform from a static HTML/CSS website into an AI-enhanced political intelligence platform built entirely on AWS serverless architecture with zero infrastructure management.
AWS Serverless Strategy:
- ☁️ Single Cloud Provider - AWS only per Hack23 ISMS SUPPLIER.md
- 🤖 Amazon Bedrock First - All AI via Bedrock (Claude Opus 4.7, Llama 4 405B, Nova Premier) - bleeding-edge models only
- ⚡ Pure Serverless - AWS Lambda, AppSync, Step Functions, EventBridge for all compute
- 🔄 Automatic Scaling - Scale from zero to millions based on demand
- 🏗️ AWS Well-Architected - Operational Excellence, Security, Reliability, Performance, Cost Optimization
Strategic Vision:
- 🤖 AI-Enhanced Journalism - Multi-modal content via Amazon Bedrock (text, audio, video)
- 📊 Predictive Analytics - Election forecasting with SageMaker Serverless Inference
- 🧠 Semantic Intelligence - Knowledge graphs (Neptune Serverless) + vector search (Bedrock Knowledge Bases)
- 🌐 Geographic Expansion - Nordic countries (DK, NO, FI), EU Parliament
- 📱 Native Mobile Apps - iOS/Android with AWS AppSync + Amplify
- 🔌 Public API - GraphQL API via AWS AppSync for external integrations
AWS Serverless Foundation Stack:
| Layer | AWS Services | Purpose |
|---|---|---|
| AI/ML | Amazon Bedrock, SageMaker Serverless | Claude Opus 4.7, Llama 4 405B, Nova Premier |
| Compute | AWS Lambda (Python, Node.js) | Serverless functions |
| API | AWS AppSync (GraphQL), API Gateway | API management |
| Data | Aurora Serverless v2, DynamoDB | Relational + NoSQL |
| Search | OpenSearch Serverless, Bedrock KB | Full-text + vector search |
| Graph | Neptune Serverless | Entity relationships |
| Time-Series | Timestream | Historical trends, forecasting |
| Storage | S3, CloudFront | Object storage + CDN |
| Orchestration | Step Functions, EventBridge | Workflow automation |
Key Milestones:
- 2026 Q2-Q3: Amazon Bedrock integration for AI journalism (Claude Opus 4.7 - current SOTA)
- 2026 Q4-2027 Q1: AWS Lambda + AppSync for serverless GraphQL API
- 2027 Q2-Q4: Neptune Serverless + Bedrock Knowledge Bases for semantic search
- 2028+: AWS Amplify mobile apps + public API via AppSync
- 2029-2030: Opus 7.x-8.x integration, near-expert political analysis, 50+ language support
- 2031-2033: Pre-AGI architecture adaptation, global parliament coverage (50+ parliaments)
- 2034-2037: AGI-era platform evolution, 195 parliament network, real-time democracy index
Current State (2026 Q1):
- ✅ Static HTML/CSS website (14 languages)
- ✅ 5 Chart.js/D3.js dashboards
- ✅ 50+ years data (2,494 politicians, 3.5M+ votes)
- ✅ AWS CloudFront + S3 (current hosting)
- ✅ ISMS compliant (ISO 27001, NIST CSF 2.0, CIS Controls)
- Current State Baseline
- Future C4 Architecture Models (AWS Serverless)
- AI Enhancement Roadmap (Amazon Bedrock)
- Scalability Improvements
- AWS Serverless Architecture Evolution
- Advanced Features Roadmap
- Migration Strategy (AWS-Only)
- Risk Assessment (AWS-Specific)
- Success Metrics
- Timeline & Milestones
- Related Documentation
Technology Stack:
- Frontend: Static HTML5/CSS3, JavaScript (Chart.js 4.4.1, D3.js 7, Papa Parse 5.5.3)
- Build System: Vite 7 (ES modules, code splitting)
- Testing: Vitest (2890 unit tests), Cypress (E2E)
- Hosting: AWS CloudFront (primary CDN) + S3 (origin)
- Data Sources: CIA platform, riksdag-regering-mcp (32 tools), Swedish open data APIs
- Languages: 14 languages (EN, SV, DA, NO, FI, DE, FR, ES, NL, AR, HE, JA, KO, ZH)
Current Capabilities:
- ✅ 349 current MPs with performance metrics
- ✅ 2,494 historical politicians (1971-2024)
- ✅ 3.5+ million votes analyzed
- ✅ 109,000+ documents processed
- ✅ 5 interactive dashboards (seasonal patterns, politician rankings, pre-election monitoring, party performance, anomaly detection)
- ✅ Real-time statistics from CIA production database (daily updates)
Architecture Strengths:
- 🟢 Simple infrastructure - Static hosting on CloudFront + S3
- 🟢 High availability - 99.9% CloudFront SLA + S3 11 9's durability
- 🟢 Simple security model - Client-side rendering, minimal attack surface
- 🟢 AWS foundation - CloudFront + S3 deployment
- 🟢 ISMS compliant - ISO 27001, NIST CSF 2.0, CIS Controls
Current Characteristics:
- 📊 Static content - Pre-rendered HTML/CSS for maximum performance
- ✍️ Manual updates - Curated content with human oversight
- 🌐 Client-side data - CSV parsing in browser for simplicity
- 📈 Historical analysis - 50+ years of political data visualization
- 🔓 Open access - Public website, no login required
- 📂 Direct access - CSV data files available for download
Vision: Transform Riksdagsmonitor into a multi-country political intelligence platform with AI-enhanced analysis and real-time monitoring, built entirely on AWS serverless services.
C4Context
title Future Riksdagsmonitor Context - AWS Serverless (2026-2028)
Person(global_user, "Global Users", "14+ languages, mobile apps, web PWA")
Person(researcher, "Academic Researchers", "GraphQL API access, data export")
Person(media, "News Media", "Embeds, webhooks, RSS feeds")
Person(business, "Business Intelligence", "Political risk API, regulatory monitoring")
System(riksdag, "Riksdagsmonitor", "AWS Serverless Political Intelligence Platform")
System_Ext(nordic_apis, "Nordic Parliament APIs", "DK, NO, FI legislative data")
System_Ext(eu_api, "EU Parliament API", "European legislative data")
System_Ext(bedrock, "Amazon Bedrock", "Claude Opus 4.7, Llama 4 405B, Nova Premier")
System_Ext(riksdag_api, "Swedish Riksdag API", "data.riksdagen.se open data")
Rel(global_user, riksdag, "HTTPS via CloudFront, mobile apps via AppSync")
Rel(researcher, riksdag, "GraphQL API (AWS AppSync)")
Rel(media, riksdag, "REST API (API Gateway)")
Rel(business, riksdag, "Enterprise GraphQL API")
Rel(riksdag, nordic_apis, "Lambda functions fetch data")
Rel(riksdag, eu_api, "EventBridge scheduled polling")
Rel(riksdag, bedrock, "AI content generation via Lambda")
Rel(riksdag, riksdag_api, "Primary data source via Lambda")
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
Architecture: Pure AWS serverless with zero infrastructure management—no Kubernetes, no containers, no EC2 instances. Enhanced with AWS WAF, KMS encryption, and multi-region deployment.
C4Container
title Riksdagsmonitor AWS Serverless Architecture (2027-2028)
Person(user, "Users", "Multi-platform access")
System_Boundary(security, "AWS Security Layer") {
Container(waf, "AWS WAF", "Web Application Firewall", "DDoS protection, rate limiting, geo-blocking")
Container(cloudfront, "CloudFront + Shield", "Global CDN", "Edge caching, Standard DDoS protection")
}
System_Boundary(riksdag, "Riksdagsmonitor Platform - AWS Serverless") {
Container(amplify_web, "Web PWA", "AWS Amplify Hosting", "Progressive Web App, SSR")
Container(amplify_mobile, "Mobile Apps", "AWS Amplify + AppSync", "iOS/Android native apps")
Container(appsync, "GraphQL API", "AWS AppSync", "Managed GraphQL, real-time subscriptions")
Container(api_gateway, "REST API", "Amazon API Gateway", "Legacy REST endpoints, usage plans")
Container(lambda_news, "News Generator", "AWS Lambda (Python)", "Bedrock integration for articles")
Container(lambda_translate, "Translation Service", "AWS Lambda (Python)", "14-language support")
Container(lambda_api, "API Functions", "AWS Lambda (Python)", "API handlers, business logic")
Container(lambda_etl, "Data Pipeline", "AWS Lambda (Python)", "ETL, data ingestion")
Container(bedrock_kb, "Vector Search", "Bedrock Knowledge Base", "RAG, semantic search, embeddings")
Container(neptune, "Graph Database", "Neptune Serverless", "Political networks, entity relationships")
Container(opensearch, "Full-Text Search", "OpenSearch Serverless", "Document search, analytics dashboards")
Container(timestream, "Time-Series DB", "Amazon Timestream", "Historical trends, election forecasting")
Container(aurora, "Relational DB", "Aurora Serverless v2", "political_data DB, multi-AZ")
Container(dynamodb, "NoSQL DB", "DynamoDB Global Tables", "Sessions, cache, multi-region")
Container(step_functions, "Workflows", "AWS Step Functions", "Content generation orchestration")
Container(eventbridge, "Event Bus", "EventBridge", "Event routing, scheduled polling")
Container(s3, "Object Storage", "S3 + CRR", "Static assets, cross-region replication")
Container(kms, "Encryption", "AWS KMS", "Data encryption at rest, key rotation")
}
System_Ext(bedrock, "Amazon Bedrock", "Claude Opus 4.7, Llama 4 405B, Nova Premier")
System_Ext(sagemaker, "SageMaker Serverless", "Custom ML models, election forecasting")
System_Ext(data_sources, "External APIs", "Riksdag, Nordic, EU Parliament APIs")
Rel(user, waf, "HTTPS traffic")
Rel(waf, cloudfront, "Filtered requests")
Rel(cloudfront, amplify_web, "Serve web app")
Rel(user, amplify_mobile, "Native SDK")
Rel(amplify_web, appsync, "GraphQL over HTTPS")
Rel(amplify_mobile, appsync, "GraphQL + subscriptions")
Rel(appsync, lambda_api, "Invoke resolvers")
Rel(api_gateway, lambda_api, "Invoke handlers")
Rel(lambda_api, aurora, "Read/write data (encrypted)")
Rel(lambda_api, dynamodb, "Cache, sessions (encrypted)")
Rel(lambda_api, opensearch, "Full-text search")
Rel(lambda_api, bedrock_kb, "Vector search")
Rel(lambda_api, neptune, "Graph queries")
Rel(lambda_api, timestream, "Time-series queries")
Rel(lambda_news, bedrock, "Text, image generation")
Rel(lambda_translate, bedrock, "Claude Opus 4.7 translation")
Rel(lambda_etl, data_sources, "Fetch political data")
Rel(step_functions, lambda_news, "Orchestrate AI pipeline")
Rel(eventbridge, lambda_etl, "Scheduled data refresh")
Rel(lambda_api, s3, "Store generated content")
Rel(cloudfront, s3, "Origin fetch")
Rel(kms, aurora, "Encrypt data")
Rel(kms, dynamodb, "Encrypt data")
Rel(kms, s3, "Encrypt objects")
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
Focus: AI-powered content generation using Amazon Bedrock for all AI operations—no direct OpenAI/Anthropic API calls.
C4Component
title AI Content Engine - Amazon Bedrock Integration (2026-2027)
Container_Boundary(ai_engine, "AI Content Engine - AWS Serverless") {
Component(event_detector, "Event Detector", "Lambda + EventBridge", "Monitors Riksdag API for new events")
Component(data_extractor, "Data Structurer", "Lambda (Python)", "Extracts and structures event data")
Component(bedrock_text, "Text Generator", "Lambda + Bedrock (Claude Opus 4.7)", "Article generation, 14 languages")
Component(bedrock_image, "Image Generator", "Lambda + Bedrock (Nova Premier)", "Multimodal generation")
Component(bedrock_audio, "Audio Generator", "Lambda + Polly Neural", "Podcast narration, 14 languages")
Component(quality_validator, "Quality Validator", "Lambda + Bedrock (Claude Opus 4.7)", "Hallucination detection, fact-check")
Component(translator, "Multi-Language", "Lambda + Bedrock (Claude Opus 4.7)", "14+ languages, cultural adaptation")
Component(step_func, "Content Pipeline", "Step Functions", "Orchestrates AI workflow")
Component(s3_publisher, "Content Publisher", "Lambda + S3 + CloudFront", "Invalidates CDN, updates site")
ComponentDb(aurora_content, "Content DB", "Aurora Serverless v2", "Generated articles, metadata")
ComponentDb(dyn_cache, "Cache", "DynamoDB", "API responses, user sessions")
}
System_Ext(bedrock, "Amazon Bedrock", "Claude Opus 4.7, Nova Premier, Llama 4 405B")
System_Ext(polly, "Amazon Polly", "Neural TTS, 14 languages")
System_Ext(riksdag_api, "riksdag-regering-mcp", "32 tools for Swedish political data")
Rel(riksdag_api, event_detector, "Event webhooks, EventBridge polling")
Rel(event_detector, data_extractor, "Raw event data")
Rel(data_extractor, step_func, "Trigger pipeline")
Rel(step_func, bedrock_text, "Generate text")
Rel(step_func, bedrock_image, "Generate images")
Rel(step_func, bedrock_audio, "Generate audio")
Rel(bedrock_text, bedrock, "Claude Opus 4.7 API")
Rel(bedrock_image, bedrock, "Nova Premier API")
Rel(bedrock_audio, polly, "Neural TTS API")
Rel(bedrock_text, quality_validator, "Generated text")
Rel(quality_validator, bedrock, "Claude Opus 4.7 validation")
Rel(quality_validator, translator, "Validated text")
Rel(translator, bedrock, "Claude Opus 4.7 translation")
Rel(translator, aurora_content, "Store content")
Rel(aurora_content, s3_publisher, "Retrieve approved content")
Rel(s3_publisher, dyn_cache, "Invalidate cache")
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
Objective: Automate daily news generation from Swedish Parliament activity using Amazon Bedrock exclusively for all AI operations.
Features:
- ✨ Automated News Articles - Daily articles via Bedrock Claude Opus 4.7 (2026 SOTA)
- ✨ Multi-Language Translation - 14 languages via Claude Opus 4.7 (no DeepL, no Google Translate)
- ✨ Podcast Generation - Amazon Polly Neural TTS (14 languages)
- ✨ Image Generation - Amazon Bedrock Nova Premier (multimodal generation)
- ✨ Real-Time Fact-Checking - Claude Opus 4.7 validates against Riksdag records
- ✨ Cross-Referencing - Automatic citation linking via Bedrock Knowledge Bases
AWS Serverless Stack:
- Text Generation: Amazon Bedrock - Claude Opus 4.7 (1M+ context window, extended thinking)
- Image Generation: Amazon Bedrock - Nova Premier (multimodal: text+image+video)
- Audio Generation: Amazon Polly - Neural TTS (14 languages including Swedish)
- Quality Assurance: Amazon Bedrock - Claude Opus 4.7 for hallucination detection
- Orchestration: AWS Step Functions (standard workflows, pay-per-state-transition)
- Storage: Amazon S3 (generated content), Aurora Serverless v2 (metadata)
Content Types:
- Daily News Digest - Top 5 parliamentary events (500-800 words, Claude Opus 4.7)
- Weekly Analysis - In-depth policy analysis (2,000-3,000 words, Claude Opus 4.7)
- Monthly Risk Assessment - Transparency report (5,000+ words, Claude Opus 4.7)
- Event Alerts - Breaking news (100-200 words, Claude Opus 4.7)
Quality Standards:
- ✅ Minimum 95% factual accuracy (verified via Bedrock against Riksdag data)
- ✅ GDPR-compliant (public official data only)
- ✅ Hack23 AI Policy compliant (transparency, human oversight, bias mitigation)
- ✅ Journalistic standards (AP/Reuters style, inverted pyramid structure)
Amazon Bedrock Advantages:
- ✅ IAM-based authentication - Role-based access, zero credential exposure
- ✅ AWS data residency - All processing within AWS infrastructure
- ✅ Built-in guardrails - Bedrock Guardrails for content filtering
- ✅ Model flexibility - Claude Opus 4.7, Llama 4 405B, Nova Premier via unified API
- ✅ Automatic scaling - Serverless capacity management, no provisioning
Objective: Implement election forecasting and coalition modeling using AWS SageMaker Serverless Inference and Amazon Bedrock.
Features:
- ✨ Election Forecasting - SageMaker Serverless Inference (XGBoost, Random Forest)
- ✨ Coalition Modeling - Bedrock Claude Opus 4.7 for scenario analysis
- ✨ Policy Impact Analysis - Bedrock Llama 4 405B for economic/social modeling
- ✨ Voting Pattern Prediction - SageMaker Serverless (85% accuracy target)
- ✨ Sentiment Trending - Bedrock Titan Embeddings + OpenSearch Serverless
AWS Serverless Stack:
- ML Models: SageMaker Serverless Inference (pay-per-invocation, auto-scaling)
- Model Training: SageMaker Training Jobs (on-demand, spot instances)
- Feature Store: SageMaker Feature Store (managed feature engineering)
- Embeddings: Bedrock Titan Embeddings v2 (8,192-dimensional vectors)
- Vector Search: OpenSearch Serverless + Bedrock Knowledge Bases
- Orchestration: Step Functions (ML pipeline workflows)
Predictive Models:
-
Election Forecasting Model (2026 Election)
- Training: SageMaker Training Jobs (XGBoost on historical data)
- Inference: SageMaker Serverless Inference (pay-per-request)
- Input Features: 50+ years historical data, economic indicators, polls
- Output: Seat predictions per party (±5 seat confidence intervals)
- Accuracy Target: 90% seat prediction accuracy
-
Coalition Formation Model
- AI Engine: Bedrock Claude Opus 4.7 (scenario analysis, extended reasoning)
- Input: Party ideologies, historical coalitions, current parliament composition
- Output: Coalition probability matrix (all viable combinations)
- Validation: Expert review by political scientists
-
Vote Prediction Model (MP-level)
- Training: SageMaker (LightGBM on 3.5M+ historical votes)
- Inference: SageMaker Serverless Inference
- Features: MP party, voting history, constituency, committee membership
- Output: Vote likelihood (yes/no/abstain probabilities)
- Accuracy Target: 85% vote prediction accuracy
Serverless ML Architecture:
- ✅ Backend ML Inference - All ML on AWS backend (Lambda + SageMaker)
- ✅ Serverless Endpoints - SageMaker Serverless Inference endpoints
- ✅ Auto-Scaling - Automatic capacity management, zero idle costs
Objective: Implement knowledge graphs and semantic search using Amazon Neptune Serverless and Amazon Bedrock Knowledge Bases.
Features:
- ✨ Knowledge Graph - Amazon Neptune Serverless (109K+ documents, entity relationships)
- ✨ Semantic Search - Amazon Bedrock Knowledge Bases (RAG with vector search)
- ✨ Natural Language Queries - Bedrock Claude Opus 4.7 + Knowledge Bases ("Show me all climate votes")
- ✨ Topic Modeling - Bedrock Titan Embeddings + OpenSearch Serverless (automatic clustering)
- ✨ Network Analysis - Neptune Serverless (PageRank, community detection via openCypher)
- ✨ Influence Scoring - Neptune graph algorithms (Louvain, Girvan-Newman)
AWS Serverless Stack:
- Graph Database: Amazon Neptune Serverless (pay-per-query, auto-pause)
- Vector Database: Amazon Bedrock Knowledge Bases (managed RAG)
- Embeddings: Bedrock Titan Embeddings v2 (8,192 dimensions)
- Full-Text Search: OpenSearch Serverless (pay-per-use, auto-scaling)
- Query Engine: Lambda functions (Python with boto3, gremlin_python)
- Visualization: D3.js (client-side, data fetched from AppSync)
Knowledge Graph Schema:
- Entities: MPs (349), Parties (8), Policies (109K+ documents), Committees (15), Ministries (10)
- Relationships: MEMBER_OF, VOTES_FOR, PROPOSES, COMMITTEE_ASSIGNMENT, COALITION_PARTNER
- Properties: Name, date, vote result, document ID, policy area (20 categories)
- Storage: Neptune Serverless (openCypher + Gremlin query languages)
Semantic Search via Bedrock Knowledge Bases:
- Ingest: Lambda functions embed documents via Bedrock Titan Embeddings
- Store: Bedrock Knowledge Base stores vectors + metadata (S3-backed)
- Query: Users ask natural language questions via AppSync
- Retrieve: Bedrock retrieves relevant documents (RAG pattern)
- Generate: Bedrock Claude Opus 4.7 generates answer with citations
AWS-Native Data Services:
- ✅ Graph Database - Amazon Neptune Serverless only
- ✅ Vector Search - Amazon Bedrock Knowledge Bases only
- ✅ Fully Managed - Zero database administration, automatic backups
- ✅ AWS-Native - IAM integration, VPC isolation, CloudWatch monitoring
Objective: Deploy conversational interfaces using Amazon Bedrock and AWS AppSync real-time subscriptions.
Features:
- ✨ AI Chatbot - Bedrock Claude Opus 6.0 with Bedrock Knowledge Bases (RAG)
- ✨ Voice Interface - Amazon Lex (conversational AI) + Polly (TTS)
- ✨ Personal Briefings - Bedrock Claude Opus 6.0 + EventBridge (scheduled)
- ✨ Multi-Agent Systems - Bedrock Agents (autonomous task execution)
AWS Serverless Stack:
- Conversational AI: Amazon Lex v2 (pay-per-request, no minimum fees)
- Text Generation: Amazon Bedrock - Claude Opus 6.0
- Voice Output: Amazon Polly Neural TTS
- Voice Input: Amazon Transcribe (real-time streaming)
- Knowledge Base: Amazon Bedrock Knowledge Bases (RAG)
- Agents: Amazon Bedrock Agents (autonomous workflows)
- Real-Time Updates: AWS AppSync subscriptions (GraphQL)
Use Cases:
- Daily Briefings - "What happened in Riksdag today?" (Bedrock + Lambda)
- MP Tracking - "What has Magdalena Andersson voted on?" (Neptune + Bedrock)
- Policy Research - "Summarize climate legislation 2020-2024" (Knowledge Bases + Claude Opus 6.0)
- Coalition Analysis - "Most likely coalitions after 2026 election?" (SageMaker + Claude Opus 6.0)
- Transparency Monitoring - "Which MPs have risk violations?" (Aurora + Claude Opus 6.0)
AWS-Native Voice Interfaces:
- ✅ Amazon Lex - Conversational AI with automatic speech recognition
- ✅ AppSync Real-Time - Push notifications via GraphQL subscriptions
- ✅ Amplify Mobile SDK - Native voice interfaces in iOS/Android apps
Phase 1: Nordic Expansion (2027-2028)
Countries:
- 🇩🇰 Denmark - Folketinget (179 seats)
- 🇳🇴 Norway - Stortinget (169 seats)
- 🇫🇮 Finland - Eduskunta (200 seats)
AWS Serverless Integration:
- Data Ingestion: Lambda functions (Python) fetch Nordic APIs
- Event-Driven: EventBridge schedules daily data refresh
- Multi-Country Storage: Aurora Serverless v2 (partitioned by country)
- Unified API: AppSync GraphQL (country filter in queries)
Phase 2: EU Parliament Integration (2028-2029)
Scope:
- 🇪🇺 EU Parliament - 705 MEPs, 27 member states
- Data Source: EU Parliament Open Data Portal
- AWS Integration: Lambda + EventBridge (hourly polling)
Current: 14 languages
Future (2027-2028): 30+ languages via Amazon Bedrock Claude Opus 5.x
AWS Translation Stack:
- Primary: Amazon Bedrock Claude Opus 5.x (cultural adaptation, political terminology)
- Fallback: Amazon Translate Neural (99 languages, fast batch translation)
- Quality Control: Bedrock Claude Opus 5.x (translation validation)
AWS Translation Services:
- ✅ Primary: Amazon Bedrock Claude Opus 5.x for political terminology nuance
- ✅ Fallback: Amazon Translate Neural (99 languages, fast batch translation)
- ✅ Quality Control: Bedrock Claude Opus 5.x (translation validation)
Historical Depth:
- Current: 1971-2024 (50+ years)
- Future: 1866-present (158+ years) - Full Riksdag history
AWS Serverless Data Pipeline:
- Ingestion: Lambda functions (Python) + riksdag-regering-mcp
- ETL: Step Functions (orchestrate multi-step data pipelines)
- Storage: Aurora Serverless v2 (active data) + S3 Glacier (archival)
- Analytics: Amazon Athena (SQL queries on S3 data lake)
Real-Time Updates:
- Current: Daily batch (03:00 CET)
- Future: Real-time streaming (<1 minute latency)
AWS Real-Time Stack:
- Streaming: Amazon Kinesis Data Streams (ingest)
- Processing: Lambda (consume Kinesis records)
- Analytics: Kinesis Data Analytics (SQL on streaming data)
- Notifications: AppSync subscriptions (push to clients)
- Storage: DynamoDB Streams (change data capture)
- Fully Managed: Zero cluster management, auto-scaling
Current Architecture (2026 Q1):
Static HTML/CSS → CloudFront → S3
Phase 1: Add Serverless API (2026 Q2-Q3)
Static Frontend → CloudFront → S3
↓
API Gateway → Lambda → Aurora Serverless v2
Phase 2: Add Amazon Bedrock AI (2026 Q4-2027 Q1)
Static Frontend → CloudFront → S3
↓
API Gateway → Lambda → Aurora Serverless v2
Lambda → Amazon Bedrock (Claude Opus 4.7)
Phase 3: Add AppSync + Mobile (2027 Q2-Q4)
Web PWA (Amplify) → CloudFront
Mobile Apps → AppSync (GraphQL) → Lambda → Aurora / DynamoDB
Lambda → Bedrock Knowledge Bases
Lambda → Neptune Serverless
Phase 4: Full Serverless (2028+)
Amplify Hosting (SSR) → CloudFront
↓
AppSync → Lambda → All AWS Serverless DBs
Step Functions → Bedrock + SageMaker
EventBridge → Scheduled workflows
Compute:
| Current | Future | Rationale |
|---|---|---|
| Static HTML | AWS Lambda (Python 3.12, Node.js 25) | Serverless functions, pay-per-request |
| N/A | AWS Amplify Hosting | Server-side rendering (SSR), edge functions |
API:
| Current | Future | Rationale |
|---|---|---|
| None | Amazon API Gateway (REST) | RESTful API, usage plans, caching |
| None | AWS AppSync (GraphQL) | Real-time subscriptions, offline sync |
AI/ML:
| Current | Future (AWS Serverless) | Rationale |
|---|---|---|
| None | Amazon Bedrock (Claude Opus 4.7, Llama 4 405B, Nova Premier) | Bleeding-edge AI, no API keys, data in AWS |
| None | SageMaker Serverless Inference | Custom ML models, pay-per-invocation |
Databases:
| Current | Future (AWS Serverless) | Rationale |
|---|---|---|
| None | Aurora Serverless v2 (PostgreSQL) | Auto-scaling RDS, pause/resume |
| None | Amazon DynamoDB | NoSQL, single-digit ms latency |
| None | Amazon Neptune Serverless | Graph database, pay-per-query |
| None | OpenSearch Serverless | Full-text + vector search |
| None | Amazon Timestream | Time-series data, automatic tiering |
Storage:
| Current | Future | Rationale |
|---|---|---|
| Amazon S3 | Amazon S3 (+ Intelligent-Tiering) | Object storage, 11 9's durability |
| CloudFront | CloudFront (+ Origin Shield) | CDN, low-latency global delivery |
Orchestration:
| Current | Future | Rationale |
|---|---|---|
| None | AWS Step Functions | Visual workflows, pay-per-state |
| None | Amazon EventBridge | Event bus, cron scheduling |
Observability:
| Current | Future | Rationale |
|---|---|---|
| None | CloudWatch Logs + Insights | Centralized logging, SQL queries |
| None | CloudWatch Metrics + Alarms | Auto-scaling triggers, alerting |
| None | AWS X-Ray | Distributed tracing, latency analysis |
Technology Stack:
- iOS: Swift + SwiftUI + Amplify iOS SDK
- Android: Kotlin + Jetpack Compose + Amplify Android SDK
- Backend: AWS AppSync (GraphQL) + Amplify Auth (Cognito)
- Offline: Amplify DataStore (local SQLite with sync)
Features:
- 📱 Offline Support - Amplify DataStore syncs when online
- 🔔 Push Notifications - Amazon SNS (iOS APNs, Android FCM)
- 🔐 Authentication - Amazon Cognito (social login, MFA)
- 📊 Custom Dashboards - User-configurable views (stored in DynamoDB)
API Features:
- 🔌 GraphQL API - AWS AppSync with real-time subscriptions
- 🔐 Authentication - Cognito user pools, API keys for public access
- 📊 Rate Limiting - AWS WAF rules for fair usage
- 📈 Usage Monitoring - CloudWatch metrics and dashboards
API Capabilities:
- Query political data (MPs, votes, documents, debates)
- Real-time subscriptions for new content
- Batch operations for researchers
- GraphQL introspection for discoverability
Features:
- 📥 Bulk Export - Athena queries on S3 data lake (CSV, JSON, Parquet)
- 🔗 Embeddable Widgets - CloudFront-hosted iframes
- 🪝 Webhooks - EventBridge → Lambda → HTTP POST
- 📊 BI Integrations - Athena → Tableau, PowerBI, Looker
Phase 1: Foundation (2026 Q2-Q3)
- Deploy Lambda functions (Python) for basic API operations
- Create Aurora Serverless v2 cluster (PostgreSQL-compatible)
- Integrate Amazon Bedrock for Claude Opus 4.7 text generation
- Maintain static site (no disruption to users)
Phase 2: AI Content Generation (2026 Q4-2027 Q1)
- Deploy Step Functions for content generation pipeline
- Integrate Bedrock Claude Opus 4.7 for news article generation
- Add EventBridge for scheduled content generation
- Test AI-generated content alongside manual content
Phase 3: API Launch (2027 Q2-Q3)
- Deploy AWS AppSync GraphQL API
- Migrate Chart.js/D3.js dashboards to fetch from AppSync
- Add API Gateway for legacy REST endpoints
- Enable public API access (authentication + rate limiting)
Phase 4: Semantic Search (2027 Q4-2028 Q1)
- Deploy Neptune Serverless for graph database
- Create Bedrock Knowledge Base for vector search
- Ingest 109K+ documents into knowledge base
- Add natural language search to frontend
Phase 5: Mobile Apps (2028 Q2-Q3)
- Develop iOS app with Amplify iOS SDK
- Develop Android app with Amplify Android SDK
- Test push notifications via Amazon SNS
- Launch mobile apps on App Store + Google Play
Always maintain static site as fallback:
- ✅ Dual Deployment - Continue CloudFront + S3 static hosting
- ✅ DNS Failover - Route 53 health checks with automatic failover
- ✅ Feature Flags - AppConfig feature toggles (disable serverless features)
- ✅ Monitoring - CloudWatch alarms on error rates, Lambda throttles
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| Bedrock Hallucination | HIGH | HIGH | Dual validation (Claude Opus 4.7 + human review), fact-check against Riksdag data |
| Lambda Cold Starts | MEDIUM | MEDIUM | Provisioned concurrency for critical functions, keep-warm EventBridge rules |
| AppSync Rate Limits | LOW | MEDIUM | Request throttling, DynamoDB caching, CloudFront in front |
| Aurora Serverless Pauses | MEDIUM | LOW | Min capacity 0.5 ACU (faster wake-up), read replicas for queries |
| AWS Service Limits | LOW | HIGH | Request limit increases proactively, monitor Service Quotas |
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| AWS Region Outage | LOW | HIGH | Multi-AZ deployment, Route 53 failover to different region |
| Bedrock Model Deprecation | MEDIUM | MEDIUM | Abstract AI layer, support multiple Bedrock models (Claude, Llama, Titan) |
| Cost Overruns | MEDIUM | HIGH | CloudWatch Billing Alarms, Cost Anomaly Detection, Budget limits |
| Vendor Lock-In | HIGH | MEDIUM | Accept AWS lock-in as strategic decision per ISMS SUPPLIER.md |
| Metric | Current (2026 Q1) | Target (2028) | Measurement |
|---|---|---|---|
| API Response Time (p95) | N/A | <200ms | CloudWatch Insights |
| Lambda Cold Start (p95) | N/A | <500ms | X-Ray traces |
| Bedrock Latency (Claude Opus 4.7) | N/A | <2s (first token) | CloudWatch metrics |
| AppSync Subscription Latency | N/A | <100ms | CloudWatch metrics |
| Uptime | 99.998% | 99.99% | CloudWatch alarms |
gantt
title AWS Serverless Implementation Timeline (2026-2029)
dateFormat YYYY-MM-DD
section Phase 1: Foundation
Lambda + Aurora Serverless Deployment :2026-04-01, 90d
Amazon Bedrock Integration (Claude Opus 4.7) :2026-05-01, 60d
Step Functions Content Pipeline :2026-06-01, 45d
section Phase 2: AI Content
Bedrock Text Generation (14 languages) :2026-10-01, 90d
Bedrock Image Generation (Nova Premier) :2026-11-01, 60d
Amazon Polly Audio Generation :2026-12-01, 45d
section Phase 3: API Launch
AWS AppSync GraphQL Deployment :2027-04-01, 90d
API Gateway REST Endpoints :2027-05-01, 60d
Public API Authentication (Cognito) :2027-06-01, 45d
section Phase 4: Semantic Search
Neptune Serverless Deployment :2027-10-01, 90d
Bedrock Knowledge Base Integration :2027-11-01, 60d
OpenSearch Serverless Deployment :2027-12-01, 45d
section Phase 5: Mobile Apps
AWS Amplify iOS App Development :2028-04-01, 120d
AWS Amplify Android App Development :2028-04-01, 120d
Push Notifications (SNS + APNs/FCM) :2028-06-01, 60d
App Store + Google Play Launch :2028-08-01, 30d
section Phase 6: Advanced AI
SageMaker Serverless Inference :2028-10-01, 90d
Amazon Lex Conversational AI :2029-01-01, 90d
Bedrock Agents (Multi-Agent Systems) :2029-04-01, 90d
2026:
- ✅ Q2: Lambda + Aurora Serverless deployed, API foundation ready
- ✅ Q3: Amazon Bedrock Claude Opus 4.7 integration, AI journalism launched
- ✅ Q4: Step Functions content pipeline, automated news generation
2027:
- ✅ Q1: Bedrock multimodal (text + image + audio) content generation
- ✅ Q2: AWS AppSync GraphQL API, dashboard migration
- ✅ Q3: Public API launch with authentication and rate limiting
- ✅ Q4: Neptune Serverless + Bedrock Knowledge Bases, semantic search
2028:
- ✅ Q1: Full semantic search with natural language queries
- ✅ Q2: AWS Amplify mobile apps beta testing
- ✅ Q3: iOS/Android apps launched on App Store + Google Play
- ✅ Q4: SageMaker Serverless for election forecasting
2029+:
- ✅ Q1: Amazon Lex conversational AI chatbot
- ✅ Q2: Bedrock Agents for autonomous research assistants
- ✅ Q3: Nordic expansion (Denmark, Norway, Finland)
- ✅ Q4: EU Parliament integration
Riksdagsmonitor's AWS serverless architecture fully aligns with all five pillars of the AWS Well-Architected Framework, ensuring enterprise-grade reliability, security, performance, cost optimization, and operational excellence.
graph TB
subgraph "AWS Well-Architected Framework"
Security[🔒 Security Pillar<br/>KMS, WAF, GuardDuty, Security Hub]
Reliability[⚡ Reliability Pillar<br/>Multi-AZ, Global Tables, Resilience Hub]
Performance[⚡ Performance Efficiency<br/>CloudFront, Lambda, Aurora Serverless]
Cost[💰 Cost Optimization<br/>Serverless Pricing, Auto-Scaling]
Operations[🔧 Operational Excellence<br/>CloudWatch, X-Ray, EventBridge]
end
subgraph "Riksdagsmonitor Implementation"
App[Riksdagsmonitor Platform]
App --> Security
App --> Reliability
App --> Performance
App --> Cost
App --> Operations
end
Security --> KMS[AWS KMS Encryption]
Security --> WAF[AWS WAF Protection]
Security --> GuardDuty[GuardDuty Threat Detection]
Security --> SecurityHub[Security Hub Monitoring]
Reliability --> MultiAZ[Multi-AZ Deployment]
Reliability --> GlobalTables[DynamoDB Global Tables]
Reliability --> ResilienceHub[AWS Resilience Hub]
Performance --> CloudFront[CloudFront CDN]
Performance --> Lambda[Lambda Auto-Scaling]
Performance --> Aurora[Aurora Serverless v2]
Cost --> PayPerUse[Pay-Per-Use Pricing]
Cost --> AutoScale[Auto-Scaling]
Cost --> CostExplorer[Cost Explorer Monitoring]
Operations --> CloudWatch[CloudWatch Logs/Metrics]
Operations --> XRay[X-Ray Distributed Tracing]
Operations --> EventBridge[EventBridge Automation]
style Security fill:#FF6B6B,color:#000000
style Reliability fill:#4ECDC4,color:#000000
style Performance fill:#45B7D1,color:#000000
style Cost fill:#FFA07A,color:#000000
style Operations fill:#98D8C8,color:#000000
Identity & Access Management:
- ✅ IAM Roles & Policies - Least privilege access for all Lambda functions
- ✅ IAM OIDC for CI/CD - GitHub Actions uses OIDC, no long-lived credentials
- ✅ Service Control Policies - Organization-level governance
- ✅ AWS Organizations - Multi-account strategy with billing consolidation
Data Protection:
- ✅ AWS KMS - Customer-managed keys (CMK) for all data encryption
- ✅ Encryption at Rest - Aurora, DynamoDB, S3, OpenSearch encrypted with KMS
- ✅ Encryption in Transit - TLS 1.3 for all API traffic, CloudFront HTTPS-only
- ✅ S3 Bucket Encryption - Default encryption with KMS, versioning enabled
Infrastructure Protection:
- ✅ AWS WAF - Rate limiting, geo-blocking, SQL injection protection
- ✅ AWS Shield Standard - DDoS protection included with CloudFront
- ✅ Security Groups - Stateful firewall rules for Aurora, Neptune, OpenSearch
- ✅ VPC Endpoints - Private connectivity to AWS services (no internet gateway)
Detection & Response:
- ✅ Amazon GuardDuty - Threat detection for AWS accounts, S3, Lambda
- ✅ AWS Security Hub - Centralized security findings aggregation
- ✅ AWS CloudTrail - API call logging for forensics and compliance
- ✅ AWS Config - Resource configuration tracking and compliance validation
graph LR
subgraph "Security Services"
WAF[AWS WAF<br/>Web Protection]
GuardDuty[GuardDuty<br/>Threat Detection]
SecurityHub[Security Hub<br/>Centralized Monitoring]
KMS[AWS KMS<br/>Encryption Keys]
CloudTrail[CloudTrail<br/>Audit Logs]
Config[AWS Config<br/>Compliance Checks]
end
subgraph "Application Layer"
CloudFront[CloudFront + Shield]
AppSync[AppSync GraphQL]
Lambda[Lambda Functions]
Aurora[Aurora Serverless v2]
DynamoDB[DynamoDB]
S3[S3 Storage]
end
WAF -->|Protect| CloudFront
CloudFront -->|Route| AppSync
AppSync -->|Invoke| Lambda
Lambda -->|Query| Aurora
Lambda -->|Read/Write| DynamoDB
Lambda -->|Store| S3
GuardDuty -->|Monitor| Lambda
GuardDuty -->|Monitor| S3
SecurityHub -->|Aggregate| GuardDuty
SecurityHub -->|Aggregate| Config
CloudTrail -->|Log| Lambda
CloudTrail -->|Log| Aurora
KMS -->|Encrypt| Aurora
KMS -->|Encrypt| DynamoDB
KMS -->|Encrypt| S3
Config -->|Validate| Lambda
Config -->|Validate| Aurora
style WAF fill:#FF6B6B,color:#000000
style GuardDuty fill:#FF6B6B,color:#000000
style SecurityHub fill:#FF6B6B,color:#000000
style KMS fill:#FF6B6B,color:#000000
Foundations:
- ✅ Service Quotas - Monitored with CloudWatch alarms, automatic increase requests
- ✅ Network Topology - Multi-AZ VPC with private subnets, NAT gateways
- ✅ Service Limits - Pre-configured to handle 10x expected load
Workload Architecture:
- ✅ Multi-AZ Deployment - Aurora Primary + Read Replicas in 3 AZs (eu-north-1)
- ✅ DynamoDB Global Tables - Multi-region replication (eu-north-1, eu-west-1)
- ✅ S3 Cross-Region Replication - Automatic replication to eu-west-1
- ✅ Lambda Reserved Concurrency - Critical functions have guaranteed capacity
Change Management:
- ✅ AWS CodePipeline - Automated deployments with blue/green strategy
- ✅ CloudFormation/CDK - Infrastructure as Code for all resources
- ✅ AWS Resilience Hub - Automated RTO/RPO validation
Failure Management:
- ✅ Aurora Automated Backups - Point-in-time recovery, 35-day retention
- ✅ DynamoDB Point-in-Time Recovery - 35-day continuous backup
- ✅ Route 53 Health Checks - Automatic failover to secondary region
- ✅ AWS Backup - Centralized backup management with compliance policies
graph TB
subgraph "Primary Region: eu-north-1"
AZ1[Availability Zone 1<br/>Aurora Primary + Lambda]
AZ2[Availability Zone 2<br/>Aurora Replica + Lambda]
AZ3[Availability Zone 3<br/>Aurora Replica + Lambda]
Aurora_Primary[Aurora Serverless v2 Primary]
Aurora_Replica1[Aurora Read Replica]
Aurora_Replica2[Aurora Read Replica]
AZ1 --> Aurora_Primary
AZ2 --> Aurora_Replica1
AZ3 --> Aurora_Replica2
end
subgraph "Secondary Region: eu-west-1"
AZ4[Availability Zone 1<br/>Aurora Global DB Replica]
AZ5[Availability Zone 2<br/>Aurora Global DB Replica]
Aurora_Global[Aurora Global Database]
AZ4 --> Aurora_Global
AZ5 --> Aurora_Global
end
Aurora_Primary -->|Async Replication| Aurora_Global
Route53[Route 53 Health Checks<br/>Automatic Failover]
Route53 -->|Primary| AZ1
Route53 -->|Failover| AZ4
Backup[AWS Backup<br/>35-day Retention]
Backup -->|Backup| Aurora_Primary
Backup -->|Backup| Aurora_Global
style AZ1 fill:#4ECDC4,color:#000000
style AZ2 fill:#4ECDC4,color:#000000
style AZ3 fill:#4ECDC4,color:#000000
style AZ4 fill:#45B7D1,color:#000000
style AZ5 fill:#45B7D1,color:#000000
Selection:
- ✅ Lambda Compute - Right-sized memory (512MB-3GB) for optimal cost/performance
- ✅ Aurora Serverless v2 - Auto-scales from 0.5 ACU to 128 ACU based on load
- ✅ DynamoDB On-Demand - Automatic capacity management, pay-per-request
- ✅ CloudFront Edge Locations - 450+ global edge locations for sub-100ms latency
Review:
- ✅ Lambda Insights - Performance monitoring with CloudWatch Lambda Insights
- ✅ X-Ray Tracing - End-to-end distributed tracing for all API calls
- ✅ CloudWatch RUM - Real User Monitoring for frontend performance
Monitoring:
- ✅ CloudWatch Dashboards - Real-time metrics for Lambda, Aurora, DynamoDB
- ✅ CloudWatch Alarms - Proactive alerts for p99 latency, error rates
- ✅ AWS Compute Optimizer - Right-sizing recommendations for Lambda
Tradeoffs:
- ✅ CloudFront Caching - 24-hour TTL for static content, 5-minute for API responses
- ✅ DynamoDB DAX - In-memory cache for hot data (sub-millisecond latency)
- ✅ Aurora Query Cache - 1GB query result caching
graph LR
subgraph "Edge Layer"
User[Global Users]
CloudFront[CloudFront CDN<br/>450+ Edge Locations<br/>< 100ms latency]
end
subgraph "API Layer"
AppSync[AppSync GraphQL<br/>Managed Service<br/>Auto-Scaling]
Lambda[Lambda Functions<br/>512MB-3GB Memory<br/>Sub-second execution]
end
subgraph "Data Layer"
Aurora[Aurora Serverless v2<br/>0.5-128 ACU<br/>Auto-Scaling]
DynamoDB[DynamoDB On-Demand<br/>Auto-Scaling<br/>Single-digit ms]
DAX[DynamoDB DAX<br/>In-Memory Cache<br/>Sub-ms latency]
OpenSearch[OpenSearch Serverless<br/>Auto-Scaling<br/>Full-text search]
end
User -->|TLS 1.3| CloudFront
CloudFront -->|GraphQL| AppSync
AppSync -->|Invoke| Lambda
Lambda -->|Query| Aurora
Lambda -->|Read| DynamoDB
DynamoDB --> DAX
Lambda -->|Search| OpenSearch
XRay[AWS X-Ray<br/>Distributed Tracing<br/>End-to-End Visibility]
CloudWatch[CloudWatch<br/>Metrics & Logs<br/>Real-Time Monitoring]
Lambda --> XRay
Aurora --> XRay
Lambda --> CloudWatch
Aurora --> CloudWatch
style CloudFront fill:#45B7D1,color:#000000
style Lambda fill:#45B7D1,color:#000000
style Aurora fill:#45B7D1,color:#000000
style DynamoDB fill:#45B7D1,color:#000000
Practice Cloud Financial Management:
- ✅ AWS Cost Explorer - Daily cost tracking with anomaly detection
- ✅ AWS Budgets - Budget alerts for capacity planning
- ✅ Cost Allocation Tags - Environment, service, owner tags for all resources
Expenditure & Usage Awareness:
- ✅ Lambda Usage Metrics - Invocations, duration, memory utilization tracked
- ✅ DynamoDB Consumption - Read/write capacity units monitored
- ✅ S3 Storage Analytics - Storage class distribution, access patterns
Cost-Effective Resources:
- ✅ Lambda Serverless - Automatic scaling, pay-per-invocation model
- ✅ Aurora Serverless v2 - Pay per ACU-hour, dynamic capacity management
- ✅ DynamoDB On-Demand - Pay per request, automatic capacity scaling
- ✅ S3 Intelligent-Tiering - Automatic storage class optimization
Manage Demand & Supply:
- ✅ API Gateway Caching - 5-minute TTL reduces Lambda invocations
- ✅ CloudFront Edge Caching - 24-hour TTL reduces origin requests
- ✅ Lambda Reserved Concurrency - Guaranteed capacity for critical functions
Optimize Over Time:
- ✅ AWS Compute Optimizer - Right-sizing recommendations reviewed quarterly
- ✅ AWS Trusted Advisor - Cost optimization checks reviewed monthly
- ✅ S3 Lifecycle Policies - Move to Glacier after 90 days, delete after 7 years
Organization:
- ✅ AWS Organizations - Multi-account strategy (dev, staging, production)
- ✅ Service Control Policies - Enforce security guardrails across accounts
- ✅ AWS CloudFormation StackSets - Deploy resources across accounts/regions
Prepare:
- ✅ Infrastructure as Code - AWS CDK (TypeScript) for all infrastructure
- ✅ CI/CD Pipelines - GitHub Actions with AWS OIDC for deployments
- ✅ Runbooks - Automated operational procedures in AWS Systems Manager
Operate:
- ✅ CloudWatch Logs - Centralized logging for all Lambda functions
- ✅ CloudWatch Metrics - Custom metrics for business KPIs
- ✅ AWS X-Ray - Distributed tracing for troubleshooting
- ✅ EventBridge Rules - Automated incident response
Evolve:
- ✅ AWS DevOps Guru - ML-powered operational insights
- ✅ AWS Well-Architected Tool - Quarterly architecture reviews
- ✅ Post-Incident Reviews - Documented in GitHub Issues with RCA
graph TB
subgraph "Observability"
CloudWatch[CloudWatch<br/>Logs + Metrics + Alarms]
XRay[X-Ray<br/>Distributed Tracing]
DevOpsGuru[DevOps Guru<br/>ML Insights]
end
subgraph "Automation"
EventBridge[EventBridge<br/>Event-Driven Automation]
SystemsManager[Systems Manager<br/>Runbooks + Parameters]
Lambda_Ops[Lambda Functions<br/>Operational Tasks]
end
subgraph "Application"
Lambda_App[Lambda Functions<br/>Application Code]
Aurora_App[Aurora Serverless v2]
DynamoDB_App[DynamoDB]
end
Lambda_App -->|Logs| CloudWatch
Lambda_App -->|Traces| XRay
Aurora_App -->|Metrics| CloudWatch
DynamoDB_App -->|Metrics| CloudWatch
CloudWatch -->|Alarms| EventBridge
EventBridge -->|Trigger| Lambda_Ops
Lambda_Ops -->|Execute| SystemsManager
CloudWatch --> DevOpsGuru
XRay --> DevOpsGuru
style CloudWatch fill:#98D8C8,color:#000000
style XRay fill:#98D8C8,color:#000000
style EventBridge fill:#98D8C8,color:#000000
Riksdagsmonitor integrates all major AWS security services to provide defense-in-depth protection across the entire stack, from edge to data layer.
graph TB
subgraph "Edge Security"
CloudFront[CloudFront + AWS Shield Standard<br/>DDoS Protection]
WAF[AWS WAF<br/>Web Application Firewall<br/>Rate Limiting, Geo-Blocking]
end
subgraph "Application Security"
AppSync[AWS AppSync<br/>GraphQL API + Authorization]
Lambda[Lambda Functions<br/>IAM Role-Based Access]
Secrets[AWS Secrets Manager<br/>Database Credentials]
end
subgraph "Data Security"
KMS[AWS KMS<br/>Encryption Key Management<br/>CMK with Auto-Rotation]
Aurora[Aurora Serverless v2<br/>Encrypted at Rest with KMS]
DynamoDB[DynamoDB<br/>Encrypted at Rest with KMS]
S3[S3 Buckets<br/>Encrypted with KMS, Versioning]
end
subgraph "Detection & Response"
GuardDuty[Amazon GuardDuty<br/>Threat Detection<br/>ML-Powered Anomaly Detection]
SecurityHub[AWS Security Hub<br/>Centralized Security Monitoring<br/>CIS, PCI DSS, NIST Compliance]
CloudTrail[AWS CloudTrail<br/>API Call Logging<br/>Forensics & Compliance]
Config[AWS Config<br/>Resource Configuration Tracking<br/>Compliance Validation]
Macie[Amazon Macie<br/>Sensitive Data Discovery<br/>S3 Data Classification]
end
subgraph "Compliance & Governance"
IAM[AWS IAM<br/>Identity & Access Management<br/>OIDC for GitHub Actions]
Organizations[AWS Organizations<br/>Multi-Account Management<br/>Service Control Policies]
end
CloudFront --> WAF
WAF --> AppSync
AppSync --> Lambda
Lambda --> Secrets
Lambda --> Aurora
Lambda --> DynamoDB
Lambda --> S3
KMS --> Aurora
KMS --> DynamoDB
KMS --> S3
GuardDuty --> SecurityHub
Config --> SecurityHub
Macie --> SecurityHub
CloudTrail --> SecurityHub
IAM --> Lambda
Organizations --> IAM
style WAF fill:#FF6B6B,color:#000000
style GuardDuty fill:#FF6B6B,color:#000000
style SecurityHub fill:#FF6B6B,color:#000000
style KMS fill:#FF6B6B,color:#000000
style CloudTrail fill:#FF6B6B,color:#000000
Capabilities:
- ✅ VPC Flow Logs Analysis - Network traffic anomaly detection
- ✅ CloudTrail Event Monitoring - Unusual API call patterns
- ✅ DNS Query Logs - Malicious domain detection
- ✅ S3 Data Events - Unauthorized S3 access detection
- ✅ Lambda Network Activity - Lambda function anomaly detection
Threat Detection:
- 🔴 Compromised Credentials - IAM credential misuse detection
- 🔴 Cryptocurrency Mining - Lambda function abuse detection
- 🔴 Backdoor Detection - Unauthorized network connections
- 🔴 Data Exfiltration - Unusual data transfer patterns
Integration:
- ✅ EventBridge Rules - Automated incident response workflows
- ✅ SNS Notifications - Real-time security alerts
- ✅ Lambda Response Functions - Automated remediation (e.g., revoke credentials)
Compliance Frameworks:
- ✅ CIS AWS Foundations Benchmark - 50+ security best practices
- ✅ PCI DSS v3.2.1 - Payment Card Industry compliance
- ✅ ISO 27001:2013 - Information Security Management
- ✅ NIST CSF 2.0 - Cybersecurity Framework alignment
Findings Aggregation:
- ✅ GuardDuty Findings - Threat detection alerts
- ✅ AWS Config Rules - Compliance violation findings
- ✅ Macie Findings - Sensitive data discovery alerts
- ✅ Inspector Findings - Vulnerability scan results (future)
Automated Remediation:
- ✅ EventBridge + Lambda - Auto-remediation for common findings
- ✅ SSM Automation Documents - Standardized response procedures
- ✅ Security Hub Insights - Custom security metrics and dashboards
Managed Rule Groups:
- ✅ AWS Managed Core Rule Set - OWASP Top 10 protection
- ✅ Known Bad Inputs - SQL injection, XSS, LFI/RFI prevention
- ✅ Anonymous IP List - Block Tor, VPN, proxy traffic
- ✅ IP Reputation List - Block known malicious IPs
Custom Rules:
- ✅ Rate Limiting - 2,000 requests per 5 minutes per IP
- ✅ Geo-Blocking - Allow EU/US, block high-risk countries
- ✅ Request Size Limits - Block requests > 8KB body
- ✅ Header Validation - Enforce required security headers
Logging & Monitoring:
- ✅ CloudWatch Metrics - Real-time WAF metrics (blocked/allowed)
- ✅ Kinesis Data Firehose - Full request logging to S3
- ✅ Security Hub Integration - WAF findings in centralized dashboard
Key Management:
- ✅ Customer Managed Keys (CMK) - Full control over encryption keys
- ✅ Automatic Key Rotation - Annual key rotation enabled
- ✅ Key Policies - Fine-grained access control per key
- ✅ Multi-Region Keys - Encryption across eu-north-1, eu-west-1
Data Encryption:
- ✅ Aurora Serverless v2 - Database encryption at rest with CMK
- ✅ DynamoDB - Table encryption at rest with CMK
- ✅ S3 Buckets - Server-side encryption (SSE-KMS)
- ✅ Lambda Environment Variables - Secrets encrypted with KMS
Compliance:
- ✅ FIPS 140-2 Level 3 - Hardware Security Modules (HSMs)
- ✅ CloudTrail Integration - All key usage logged
- ✅ AWS Config Rules - Enforce encryption for all resources
flowchart LR
subgraph "Data Flow with KMS Encryption"
User[User Request]
AppSync[AppSync GraphQL]
Lambda[Lambda Function]
KMS[AWS KMS<br/>Decrypt/Encrypt]
Aurora[Aurora Serverless v2<br/>Encrypted at Rest]
S3[S3 Bucket<br/>Encrypted with SSE-KMS]
end
User -->|HTTPS Request| AppSync
AppSync -->|Invoke| Lambda
Lambda -->|Request Decryption| KMS
KMS -->|Decrypted Data Key| Lambda
Lambda -->|Query| Aurora
Lambda -->|Store| S3
Aurora -->|Encrypted Data| KMS
S3 -->|Encrypted Objects| KMS
CloudTrail[AWS CloudTrail<br/>Log All KMS Operations]
KMS --> CloudTrail
style KMS fill:#FF6B6B,color:#000000
style Aurora fill:#4ECDC4,color:#000000
style S3 fill:#4ECDC4,color:#000000
Logging Coverage:
- ✅ Management Events - All API calls (Lambda, Aurora, DynamoDB)
- ✅ Data Events - S3 object-level operations (read/write)
- ✅ Lambda Data Events - Function invocations logged
- ✅ Multi-Region Logging - Centralized trail in eu-north-1
Retention & Storage:
- ✅ CloudWatch Logs Integration - Real-time log analysis
- ✅ S3 Long-Term Storage - 7-year retention for compliance
- ✅ S3 Glacier Archive - Cost-effective long-term storage
- ✅ Log File Integrity - SHA-256 hashing for tamper detection
Security:
- ✅ S3 Bucket Encryption - SSE-KMS encryption for log files
- ✅ S3 Bucket Policy - Deny non-TLS uploads
- ✅ MFA Delete Protection - Prevent accidental log deletion
Configuration Tracking:
- ✅ Resource Inventory - All Lambda, Aurora, DynamoDB, S3 resources
- ✅ Configuration History - Change tracking for forensics
- ✅ Relationship Mapping - Visualize resource dependencies
Managed Rules:
- ✅ encrypted-volumes - Ensure Aurora/DynamoDB encryption
- ✅ s3-bucket-public-read-prohibited - Block public S3 access
- ✅ lambda-function-public-access-prohibited - Block public Lambda
- ✅ dynamodb-pitr-enabled - Enforce Point-in-Time Recovery
Compliance Packs:
- ✅ Operational Best Practices for ISO 27001 - 50+ automated checks
- ✅ Operational Best Practices for NIST CSF 2.0 - 40+ checks
- ✅ Operational Best Practices for CIS AWS Foundations - 30+ checks
Riksdagsmonitor implements a comprehensive multi-region strategy for high availability, disaster recovery, and data residency compliance, with primary operations in eu-north-1 (Stockholm) and failover to eu-west-1 (Ireland).
graph TB
subgraph "Global Edge Layer"
Route53[Route 53<br/>Health Checks + Failover<br/>Latency-Based Routing]
CloudFront[CloudFront<br/>450+ Global Edge Locations<br/>Automatic Failover]
end
subgraph "Primary Region: eu-north-1 Stockholm"
ALB_Primary[Application Load Balancer<br/>Multi-AZ]
AppSync_Primary[AppSync GraphQL<br/>Primary Endpoint]
Lambda_Primary[Lambda Functions<br/>Reserved Concurrency]
Aurora_Primary[Aurora Global Database<br/>Primary Cluster<br/>Write + Read]
DynamoDB_Primary[DynamoDB Global Table<br/>Primary Region]
S3_Primary[S3 Bucket<br/>Cross-Region Replication]
OpenSearch_Primary[OpenSearch Serverless<br/>Multi-AZ Collection]
end
subgraph "Secondary Region: eu-west-1 Ireland"
ALB_Secondary[Application Load Balancer<br/>Multi-AZ]
AppSync_Secondary[AppSync GraphQL<br/>Secondary Endpoint]
Lambda_Secondary[Lambda Functions<br/>Reserved Concurrency]
Aurora_Secondary[Aurora Global Database<br/>Secondary Cluster<br/>Read-Only]
DynamoDB_Secondary[DynamoDB Global Table<br/>Replica Region]
S3_Secondary[S3 Bucket<br/>Replication Target]
OpenSearch_Secondary[OpenSearch Serverless<br/>Multi-AZ Collection]
end
Route53 -->|Primary| CloudFront
CloudFront -->|Route| ALB_Primary
Route53 -->|Failover| ALB_Secondary
ALB_Primary --> AppSync_Primary
ALB_Secondary --> AppSync_Secondary
AppSync_Primary --> Lambda_Primary
AppSync_Secondary --> Lambda_Secondary
Lambda_Primary --> Aurora_Primary
Lambda_Primary --> DynamoDB_Primary
Lambda_Primary --> S3_Primary
Lambda_Primary --> OpenSearch_Primary
Lambda_Secondary --> Aurora_Secondary
Lambda_Secondary --> DynamoDB_Secondary
Lambda_Secondary --> S3_Secondary
Lambda_Secondary --> OpenSearch_Secondary
Aurora_Primary -->|Async Replication<br/>< 1 second| Aurora_Secondary
DynamoDB_Primary -->|Active-Active<br/>< 1 second| DynamoDB_Secondary
S3_Primary -->|Cross-Region Replication<br/>< 15 minutes| S3_Secondary
Backup[AWS Backup<br/>Multi-Region Backup Vaults<br/>35-day Retention]
Backup --> Aurora_Primary
Backup --> Aurora_Secondary
Backup --> DynamoDB_Primary
Backup --> DynamoDB_Secondary
style Route53 fill:#4ECDC4,color:#000000
style CloudFront fill:#4ECDC4,color:#000000
style Aurora_Primary fill:#45B7D1,color:#000000
style Aurora_Secondary fill:#95E1D3,color:#000000
style DynamoDB_Primary fill:#45B7D1,color:#000000
style DynamoDB_Secondary fill:#95E1D3,color:#000000
Configuration:
- ✅ Primary Region: eu-north-1 (Stockholm) - Read/Write cluster
- ✅ Secondary Region: eu-west-1 (Ireland) - Read-only cluster
- ✅ Replication Lag: < 1 second typical, < 5 seconds 99.9th percentile
- ✅ RPO: < 1 second (Recovery Point Objective)
- ✅ RTO: < 1 minute (Recovery Time Objective for failover)
Features:
- ✅ Storage-Level Replication - Physical replication for low latency
- ✅ Automatic Backtrack - Rewind database to any point in time (72 hours)
- ✅ Fast Database Cloning - Create test environments in minutes
- ✅ Cross-Region Disaster Recovery - Promote secondary to primary in <1 minute
Failover Strategy:
- Automatic Health Checks - Route 53 monitors primary region health
- Promote Secondary - Aurora Global Database promotion to primary
- Update DNS - Route 53 updates DNS to secondary region
- Resume Operations - Lambda functions connect to new primary
Configuration:
- ✅ Replica Regions: eu-north-1 (primary), eu-west-1 (secondary)
- ✅ Replication Type: Active-Active (multi-master)
- ✅ Conflict Resolution: Last-Writer-Wins (LWW) with microsecond precision
- ✅ Replication Lag: < 1 second typical
Use Cases:
- ✅ User Sessions - Low-latency session storage across regions
- ✅ API Cache - Distributed cache with regional read paths
- ✅ Metadata - Document metadata, tags, classifications
Benefits:
- ✅ 99.999% Availability SLA - Five nines with Global Tables
- ✅ Local Reads - Sub-millisecond reads from nearest region
- ✅ Automatic Failover - No manual intervention required
Configuration:
- ✅ Source Bucket: riksdagsmonitor-primary (eu-north-1)
- ✅ Destination Bucket: riksdagsmonitor-dr (eu-west-1)
- ✅ Replication Time Control (RTC): 99.99% replication within 15 minutes
- ✅ Replication Rules: All objects, encrypted with KMS
Replicated Content:
- ✅ Static Website Assets - HTML, CSS, JS, images
- ✅ Generated News Articles - AI-generated content
- ✅ CloudTrail Logs - Audit logs for compliance
- ✅ Database Backups - Aurora/DynamoDB backup files
Metadata Replication:
- ✅ Object ACLs - Access control lists replicated
- ✅ Object Tags - Classification tags replicated
- ✅ KMS Encryption - Destination bucket encrypted with regional KMS key
Health Check Configuration:
- ✅ Primary Endpoint: https://api.riksdagsmonitor.com/health (eu-north-1)
- ✅ Secondary Endpoint: https://api-dr.riksdagsmonitor.com/health (eu-west-1)
- ✅ Check Interval: 30 seconds
- ✅ Failure Threshold: 3 consecutive failures (90 seconds)
- ✅ String Matching: Response must contain "healthy"
Failover Policy:
- ✅ Primary-Secondary Failover - Active-passive configuration
- ✅ Automatic DNS Update - TTL: 60 seconds for fast cutover
- ✅ CloudWatch Alarms - Alert on health check failures
- ✅ SNS Notifications - Email/SMS alerts to on-call team
Recovery Time:
- ✅ Detection Time: 90 seconds (3 failed checks)
- ✅ DNS Propagation: 60 seconds (TTL)
- ✅ Total RTO: < 3 minutes (detection + DNS + warmup)
Backup Plans:
- ✅ Daily Backups - Aurora, DynamoDB, all regions
- ✅ Retention: 35 days (compliance requirement)
- ✅ Backup Vault: Multi-region vault (eu-north-1, eu-west-1)
- ✅ Backup Vault Lock: WORM (Write-Once-Read-Many) for compliance
Cross-Region Backup Copy:
- ✅ Automatic Copy - All backups copied to secondary region
- ✅ Encryption: KMS-encrypted in destination region
- ✅ Copy Lag: < 2 hours typical
Backup Testing:
- ✅ Monthly Restore Tests - Automated restore to test account
- ✅ Quarterly DR Drills - Full region failover testing
- ✅ Annual RTO/RPO Validation - Verify recovery time objectives
AWS Resilience Hub provides automated operational readiness validation, disaster recovery testing, and business continuity management for Riksdagsmonitor.
graph TB
subgraph "Resilience Hub Workflow"
Discover[Discover Application<br/>Components & Dependencies]
Define[Define RTO/RPO<br/>Business Requirements]
Assess[Assess Resilience<br/>Against Requirements]
Recommend[Resilience<br/>Recommendations]
Test[Resilience Testing<br/>Automated Validation]
Monitor[Continuous Monitoring<br/>Drift Detection]
end
subgraph "Application Components"
AppSync[AppSync GraphQL]
Lambda[Lambda Functions]
Aurora[Aurora Global Database]
DynamoDB[DynamoDB Global Tables]
S3[S3 + CRR]
end
Discover --> AppSync
Discover --> Lambda
Discover --> Aurora
Discover --> DynamoDB
Discover --> S3
Define --> Assess
Assess --> Recommend
Recommend --> Test
Test --> Monitor
Monitor --> Assess
EventBridge[EventBridge<br/>Automated DR Drills]
CloudWatch[CloudWatch<br/>RTO/RPO Tracking]
Test --> EventBridge
Monitor --> CloudWatch
style Discover fill:#98D8C8,color:#000000
style Assess fill:#98D8C8,color:#000000
style Test fill:#4ECDC4,color:#000000
Defined Objectives:
-
✅ RTO (Recovery Time Objective): < 5 minutes
- Aurora Global Database promotion: < 1 minute
- Route 53 DNS failover: < 3 minutes
- Lambda function warmup: < 1 minute
-
✅ RPO (Recovery Point Objective): < 1 second
- Aurora replication lag: < 1 second
- DynamoDB Global Tables: < 1 second
- S3 CRR: < 15 minutes (acceptable for static assets)
Service-Level Objectives:
- ✅ API Availability: 99.95% (< 4.38 hours downtime/year)
- ✅ Data Durability: 99.999999999% (11 nines with S3, Aurora)
- ✅ Data Integrity: Zero data loss for transactional data
Assessment Results:
-
✅ Overall Resilience Score: 92/100 (Excellent)
-
✅ Infrastructure Resilience: 95/100
- Multi-AZ deployment: ✅ Pass
- Multi-region replication: ✅ Pass
- Automated backups: ✅ Pass
-
✅ Application Resilience: 90/100
- Health checks configured: ✅ Pass
- Circuit breakers implemented: ✅ Pass
- Retry logic with exponential backoff: ✅ Pass
-
✅ Data Resilience: 95/100
- Point-in-time recovery enabled: ✅ Pass
- Cross-region replication: ✅ Pass
- Backup testing performed: ✅ Pass
Identified Gaps:
⚠️ Recommendation 1: Add AWS Shield Advanced for DDoS protection (planned Q3 2026)⚠️ Recommendation 2: Implement chaos engineering with AWS Fault Injection Simulator⚠️ Recommendation 3: Add read replicas in additional regions (eu-central-1) for further resilience
Monthly Automated Tests:
-
Aurora Failover Test - Promote secondary to primary
- Validation: Verify RTO < 1 minute, RPO < 1 second
- Rollback: Automatic rollback after successful test
-
DynamoDB Failover Test - Redirect Lambda to secondary region
- Validation: Verify Global Tables replication lag < 1 second
- Rollback: Restore primary region routing
-
S3 Failover Test - Switch CloudFront origin to secondary bucket
- Validation: Verify CRR completeness, object integrity
- Rollback: Restore primary origin
-
Lambda Cold Start Test - Measure cold start latency after failover
- Validation: Verify cold start < 3 seconds (Go 1.21 runtime)
- Optimization: Pre-warm functions with scheduled invocations
Quarterly DR Drills:
- ✅ Full Region Failover - Complete cutover to eu-west-1
- ✅ Data Restoration Test - Restore from AWS Backup
- ✅ Application Recovery Test - Redeploy from CI/CD pipeline
- ✅ Communication Test - Validate incident response procedures
Continuous Drift Detection:
- ✅ CloudFormation Drift Detection - Daily checks for manual changes
- ✅ AWS Config Rules - Enforce resilience configurations
- ✅ EventBridge Rules - Alert on configuration changes
Riksdagsmonitor provides native integrations with enterprise Security Information and Event Management (SIEM) platforms, Security Orchestration Automation and Response (SOAR) systems, and Governance, Risk, and Compliance (GRC) platforms.
graph TB
subgraph "Riksdagsmonitor AWS"
CloudTrail[CloudTrail<br/>API Audit Logs]
GuardDuty[GuardDuty<br/>Threat Detection]
SecurityHub[Security Hub<br/>Security Findings]
CloudWatch[CloudWatch<br/>Application Logs]
VPCFlow[VPC Flow Logs<br/>Network Traffic]
end
subgraph "Data Lake"
S3Logs[S3 Bucket<br/>Centralized Log Storage<br/>7-year retention]
Kinesis[Kinesis Data Firehose<br/>Real-Time Streaming]
end
subgraph "SIEM Platforms"
Splunk[Splunk Enterprise]
Elastic[Elastic Security]
QRadar[IBM QRadar]
Sentinel[Microsoft Sentinel]
end
subgraph "SOAR Platforms"
Phantom[Splunk SOAR Phantom]
Cortex[Palo Alto Cortex XSOAR]
Swimlane[Swimlane]
end
subgraph "GRC Platforms"
OneTrust[OneTrust GRC]
ServiceNow[ServiceNow GRC]
Archer[RSA Archer]
end
CloudTrail --> S3Logs
GuardDuty --> SecurityHub
CloudWatch --> Kinesis
VPCFlow --> S3Logs
SecurityHub --> Kinesis
S3Logs --> Splunk
S3Logs --> Elastic
S3Logs --> QRadar
Kinesis --> Sentinel
SecurityHub --> Phantom
SecurityHub --> Cortex
GuardDuty --> Swimlane
CloudTrail --> OneTrust
SecurityHub --> ServiceNow
SecurityHub --> Archer
style SecurityHub fill:#FF6B6B,color:#000000
style S3Logs fill:#4ECDC4,color:#000000
style Kinesis fill:#45B7D1,color:#000000
Splunk Enterprise Integration:
- ✅ Splunk Add-on for AWS - Pre-built dashboards and reports
- ✅ Data Inputs: CloudTrail, GuardDuty, VPC Flow Logs, CloudWatch Logs
- ✅ Real-Time Streaming: Kinesis Data Firehose → Splunk HTTP Event Collector
- ✅ Use Cases: Threat hunting, compliance reporting, user behavior analytics
Elastic Security Integration:
- ✅ Filebeat AWS Module - Automated log collection
- ✅ Data Sources: CloudTrail, GuardDuty, VPC Flow Logs
- ✅ ECS Mapping: Elastic Common Schema for normalized logs
- ✅ Use Cases: Security analytics, machine learning anomaly detection
IBM QRadar Integration:
- ✅ QRadar AWS DSM - Device Support Module
- ✅ Data Feeds: CloudTrail, GuardDuty, Security Hub findings
- ✅ Correlation Rules: Pre-built AWS threat detection rules
- ✅ Use Cases: Compliance reporting, incident response
Microsoft Sentinel Integration:
- ✅ Azure Sentinel Connector for AWS - Native integration
- ✅ Data Connectors: CloudTrail, GuardDuty, Security Hub
- ✅ Workbooks: Pre-built AWS security dashboards
- ✅ Use Cases: Hybrid cloud security monitoring, Azure/AWS correlation
Splunk SOAR (Phantom) Integration:
- ✅ AWS App for Phantom - 50+ automated actions
- ✅ Use Cases:
- Automated incident response (revoke IAM credentials, isolate EC2)
- GuardDuty finding enrichment and ticket creation
- Automated remediation playbooks
Palo Alto Cortex XSOAR Integration:
- ✅ AWS Content Pack - Pre-built playbooks and integrations
- ✅ Use Cases:
- Automated threat hunting across AWS accounts
- Multi-cloud incident correlation (AWS + Azure + GCP)
- Compliance validation automation
Swimlane Integration:
- ✅ AWS Connector - API-based integration
- ✅ Use Cases:
- Low-code security automation workflows
- Incident case management with AWS context
- Automated reporting and metrics
OneTrust GRC Integration:
- ✅ AWS Compliance Module - Automated evidence collection
- ✅ Data Sources: AWS Config, Security Hub, CloudTrail
- ✅ Use Cases:
- Continuous compliance monitoring (ISO 27001, SOC 2)
- Risk assessment automation
- Vendor risk management (AWS as strategic supplier)
ServiceNow GRC Integration:
- ✅ ServiceNow AWS Service Management Connector - Native integration
- ✅ Use Cases:
- Automated incident ticketing from GuardDuty findings
- Configuration Management Database (CMDB) synchronization
- Change management workflows for infrastructure updates
RSA Archer Integration:
- ✅ AWS Connector for Archer - API-based data ingestion
- ✅ Use Cases:
- Policy compliance tracking
- Risk register automation with AWS asset context
- Audit management with CloudTrail evidence
Enterprise API Features:
- ✅ Request Throttling - Configurable rate limits per endpoint
- ✅ API Keys - Secure API key management and authentication
- ✅ Caching - Response caching at multiple layers (CloudFront, API Gateway, AppSync)
- ✅ Access Control - IAM-based and Cognito authentication
API Monitoring:
- ✅ CloudWatch Metrics - Request count, latency, error rate
- ✅ X-Ray Tracing - End-to-end API call tracing
- ✅ Access Logging - Full request/response logging to S3
Developer Portal:
- ✅ AWS Amplify Hosted - Self-service API key generation
- ✅ OpenAPI/Swagger Docs - Interactive API documentation
- ✅ Code Samples - Python, JavaScript, Go, cURL examples
| Document | Type | Purpose | Status |
|---|---|---|---|
| Current Architecture | 🏛️ Architecture | C4 model current structure (Context, Container, Component diagrams) | ✅ Active |
| Security Architecture | 🛡️ Security | Current security controls, CSP implementation, SLSA Level 3 | ✅ Active |
| State Diagrams | 🔄 Behavior | Current system state transitions and lifecycles | ✅ Active |
| Future Flowcharts | 🔄 Process | Bedrock AI workflows, Step Functions orchestration | ✅ Active |
| Mindmaps | 🧠 Concept | Current system component relationships | ✅ Active |
| SWOT Analysis | 💼 Business | Current strategic assessment and positioning | ✅ Active |
| CI/CD Workflows | 🔧 DevOps | Current GitHub Actions automation | ✅ Active |
| Data Model | 📊 Data | Current client-side data structures, CIA integration | ✅ Active |
| Threat Model | 🎯 Security | STRIDE threat analysis, attack surfaces | ✅ Active |
| Agents | 🤖 Automation | GitHub Copilot custom agents (14 agents) | ✅ Active |
| Skills | 🎓 Knowledge | Agent skill libraries (57 specialized skills) | ✅ Active |
| Labels | 🏷️ Organization | GitHub issue labels and management | ✅ Active |
| Document | Type | Purpose | Status |
|---|---|---|---|
| Future Architecture | 🚀 Evolution | This document: AWS serverless roadmap, AI enhancement | ✅ Active |
| Future Security Architecture | 🛡️ Security | Planned AWS security enhancements (GuardDuty, Security Hub, WAF) | ✅ Active |
| Future State Diagrams | 🔄 Behavior | AI-enhanced state transitions, event-driven workflows | ✅ Active |
| Future Flowcharts | 🔄 Process | Bedrock AI workflows, Step Functions orchestration | ✅ Active |
| Future Mindmaps | 🧠 Concept | Future capability evolution, AWS service relationships | ✅ Active |
| Future SWOT Analysis | 💼 Business | Future strategic opportunities and growth strategies | ✅ Active |
| Future Threat Model | 🎯 Security | Future threat analysis for planned features | ✅ Active |
| Future Workflows | 🔧 DevOps | Enhanced CI/CD with advanced pipelines | ✅ Active |
| Future Data Model | 📊 Data | Aurora, DynamoDB, Neptune data architecture | ✅ Active |
| Resource | Category | Description |
|---|---|---|
| Hack23 ISMS SUPPLIER.md | 🏢 Governance | AWS as strategic supplier, vendor management |
| Hack23 AI Policy | 🤖 AI Governance | Amazon Bedrock usage, AI ethics, transparency |
| Hack23 Secure Development Policy | 🔒 Security | SDLC requirements, code security standards |
| AWS Well-Architected Framework | ☁️ AWS | 5 pillars: Security, Reliability, Performance, Cost, Operations |
| Amazon Bedrock Documentation | 🤖 AI/ML | Claude Opus 4.7, Llama 4 405B, Nova Premier APIs |
| AWS Serverless Resources | ⚡ Serverless | Lambda, AppSync, Step Functions best practices |
| AWS Security Hub | 🛡️ Security | Centralized security monitoring, compliance frameworks |
| Aurora Serverless v2 | 💾 Database | Auto-scaling serverless database documentation |
| DynamoDB Global Tables | 🌍 NoSQL | Multi-region replication, active-active tables |
| AWS Resilience Hub | 🏥 DR/BC | Operational readiness, RTO/RPO validation |
📌 Documentation Navigation Tips:
- Start with Current Architecture to understand v1.0 baseline
- Review Security Architecture for current security posture
- Read this document (Future Architecture) for AWS serverless roadmap
- Check Future Security Architecture for security evolution
- Explore Agents and Skills for GitHub Copilot capabilities
Riksdagsmonitor's future architecture represents a strategic evolution from a static HTML/CSS transparency platform to a hybrid intelligent system combining GitHub Copilot agentic orchestration with AWS serverless data infrastructure. This transformation advances the platform's mission of democratic accountability through enhanced automation, scalability, and intelligence while maintaining the security-first principles established in our ISMS framework.
Key Architectural Achievements: The hybrid architecture preserves riksdagsmonitor's sophisticated 14-agent GitHub Copilot ecosystem (content-generator, news-journalist, intelligence-operative) as the primary orchestration layer, while introducing AWS serverless services (Aurora Serverless v2, DynamoDB, Neptune Serverless, OpenSearch Serverless) as the scalable data backend. This design leverages the strengths of both platforms: agents provide specialized domain expertise and safe-outputs workflows, while AWS delivers multi-region reliability, enterprise-grade security services (GuardDuty, Security Hub, WAF), and unlimited data processing capacity. The 4-phase enhancement roadmap (Enhanced Journalism 2026, Predictive Analytics 2027, Semantic Intelligence 2028, Conversational AI 2029+) introduces progressively advanced capabilities using bleeding-edge AI models (Claude Opus 4.7 for 2026, Opus 5.x for 2027-2028, Opus 6.0 for 2028+) delivered through Amazon Bedrock's unified interface.
Strategic Value Proposition: The architecture delivers measurable technical advantages across all AWS Well-Architected pillars. Security is enhanced through defense-in-depth integration of seven AWS security services plus agent-based safe-outputs validation. Reliability improves via multi-region deployment (Aurora Global Database, DynamoDB Global Tables, S3 Cross-Region Replication) achieving RTO < 5 minutes and RPO < 1 second. Performance scales elastically through serverless auto-scaling combined with agent-driven optimization. Operational excellence is achieved through comprehensive automation, Infrastructure as Code (CDK/Terraform), and continuous resilience validation via AWS Resilience Hub (resilience score 92/100). The platform maintains pure technical focus with zero infrastructure management overhead, enabling the development team to concentrate on feature delivery and democratic transparency innovation rather than operations.
Migration Roadmap Summary: The 4-phase migration strategy balances technical risk with capability advancement. Phase 1 (2026 Q2-Q3) establishes the AWS foundation with Lambda, Aurora Serverless v2, and Bedrock integration while preserving GitHub Actions agent workflows. Phase 2 (2026 Q4-2027 Q1) adds real-time capabilities through AppSync GraphQL and Kinesis Data Streams for event-driven architecture. Phase 3 (2027 Q2-Q4) introduces graph intelligence via Neptune Serverless and vector search through OpenSearch Serverless with Bedrock Knowledge Bases. Phase 4 (2028+) completes the transformation with conversational AI using Amazon Lex, Bedrock Agents, and Claude Opus 6.0 for natural language interfaces. Each phase includes comprehensive rollback procedures, automated testing gates, and gradual traffic migration to ensure zero-downtime deployment.
Path Forward: Success depends on disciplined execution of the technical roadmap, continuous security validation per ISO 27001/NIST CSF 2.0/CIS Controls frameworks, and preservation of the agentic orchestration architecture that distinguishes riksdagsmonitor from conventional platforms. The hybrid model positions riksdagsmonitor as a reference implementation for intelligent civic technology, demonstrating how advanced AI agents and cloud infrastructure combine to serve democratic transparency at scale. Future enhancements will extend geographic coverage to Nordic parliaments (Denmark, Norway, Finland), expand language support to 30+ languages via Bedrock's multilingual capabilities, and deepen intelligence analysis through SageMaker election forecasting models. The architecture provides a sustainable foundation for riksdagsmonitor's evolution as Sweden's premier political accountability platform for the next decade.
Anthropic Opus Model Cadence:
- Minor updates: Every ~2.3 months (Opus 4.8, 4.9, 5.0...) — backward-compatible, incremental capability improvements
- Major versions: Annually (Opus 5.0 in 2027, 6.0 in 2028, 7.0 in 2029... through 2037 or successor paradigm)
- Architecture principle: Model-agnostic service layer via Amazon Bedrock abstracts all model dependencies
Extended Architecture Roadmap:
| Phase | Period | AI Model | Architecture Impact |
|---|---|---|---|
| Enhanced Journalism | 2026 Q2-Q3 | Opus 4.7-4.9 | Bedrock integration, agentic content generation |
| Predictive Analytics | 2027 | Opus 5.x | SageMaker Serverless, real-time prediction pipelines |
| Semantic Intelligence | 2028 | Opus 6.x | Neptune Serverless knowledge graphs, multi-modal content |
| Conversational AI | 2029 | Opus 7.x | Amazon Lex, Bedrock Agents, natural language interfaces |
| Near-Expert Analysis | 2030 | Opus 8.x | Autonomous political analysis, 50+ language native support |
| Global Coverage | 2031-2033 | Opus 9-10.x / Pre-AGI | 50+ parliament architecture, federated data mesh |
| AGI-Era Platform | 2034-2037 | Post-Opus / AGI | 195 parliament network, autonomous intelligence, quantum-ready |
Competitor & Paradigm Shift Considerations:
- Multi-model via Bedrock: Architecture supports switching between Anthropic, Meta (Llama), Amazon (Nova), and future providers
- Quarterly evaluation: Benchmark competitors (OpenAI, Google, Meta, EU sovereign AI) at every major release
- Open-source fallback: Maintain self-hosted model capability for resilience and sovereignty
- Paradigm readiness: Architecture abstractions prepare for quantum computing, neuromorphic AI, and other transformative technologies
- AGI safeguards: Human oversight, democratic accountability, and ethical AI governance built into every architectural layer
📋 Document Control:
✅ Approved by: James Pether Sörling, CEO
📤 Distribution: Public
🏷️ Classification:
📅 Effective Date: 2026-02-24
⏰ Next Review: 2026-05-20
🎯 Framework Compliance: