Wally Forum QA Architecture
System Overview
Scheduled (or ad-hoc) Lambda collects accessibility questions from three sources, builds a digest body, emails via SES, and optionally posts to Discourse.
Architecture Diagram
graph LR
LambdaHandler["lambda_handler<br/>orchestrator"]
StackOverflowApi["Stack Overflow API"]
UxStackExchangeApi["UX Stack Exchange API"]
RedditSource["Reddit"]
AmazonSes["Amazon SES email"]
DiscourseForum["Discourse forum"]
LambdaHandler -->|"fetch accessibility questions"| StackOverflowApi
LambdaHandler -->|"fetch accessibility questions"| UxStackExchangeApi
LambdaHandler -->|"fetch accessibility questions"| RedditSource
LambdaHandler -->|"email daily digest"| AmazonSes
LambdaHandler -->|"optional forum post"| DiscourseForum
How to read this diagram
Arrows mean flow / dependency / "talks to", not button clicks. Each arrow label says what happens on that step.
Core Components
| File | Role |
|---|---|
lambda_handler.py | Orchestrates window, scrape, email |
scrape_questions.py | Source fetchers |
ses.py | Digest email |
post_to_discourse.py | Forum post helper |
Data Flow
- Resolve time window (event or last 24h)
- Fetch questions from each source independently
- Aggregate
{title, url, source} - Send SES digest
- Optionally post to Discourse
Technology Stack
| Layer | Technology |
|---|---|
| Compute | AWS Lambda |
| Language | Python |
| SES |