Skip to content

Latest commit

 

History

History
31 lines (23 loc) · 1.53 KB

README.md

File metadata and controls

31 lines (23 loc) · 1.53 KB

Mr.Roadboto

A low-bandwidth and easy to use Facebook chat bot that serves Colorado's Department of Transportation (CDOT) alerts for I70 road-closures affecting major ski resorts. You can read about the motivation here.

img

Where does Mr.Roadboto live?

MrRoadboto's Facebook page is here. These messages go directly to AWS for parsing.

What Resorts does Mr.Roadboto support?

  • Vail
  • Winter Park
  • Arapahoe Basin
  • Copper Mountain
  • Keystone
  • Breckenridge

Architecture

Mr.Roadboto is designed to be both elastic and ephemeral. He is independently made up of multiple AWS Lambda functions for user interaction and data gathering.

  • CDOT only allows me to query their system once every two minutes, perfect for a Lambda function.
  • The highly variable demand for chat bot interaction also lends itself well to a Lambda.
  • A high performance Redis cache sits between them for rapid data extraction.

Architecture Diagram

Lambda Functions

/chat

Handles user interaction between FB and the backend. This function only contains messaging logic. It uses the Claudia Bot Builder library to handle deployment and interaction with Facebook messenger

/digestor

Launched by Cloudwatch Events every five minutes. Pulls from CDOT, parses weather information, and puts it in the DB.