Skip to main content

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​

FileRole
lambda_handler.pyOrchestrates window, scrape, email
scrape_questions.pySource fetchers
ses.pyDigest email
post_to_discourse.pyForum post helper

Data Flow​

  1. Resolve time window (event or last 24h)
  2. Fetch questions from each source independently
  3. Aggregate {title, url, source}
  4. Send SES digest
  5. Optionally post to Discourse

Technology Stack​

LayerTechnology
ComputeAWS Lambda
LanguagePython
EmailSES

Next Steps​