Skip to content

maxywb/distbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Irc bot for exploring how to build a distributed, fault-tolerant system. I chose an irc bot for this experiment because it's conceptually easy, and the operations it performs are sufficiently distinct that it can be easily broken up (e.g. something needs to speak the irc protocol, something else needs to know how to interpret commands, something needs to store data to a db, etc).

Present:

  • HDFS -- There is a collection of flat files into which I dump JSON blobs. This is my "poor-man's" database...
  • Kafka -- There are currently 2 channels: "irc-publish" for publishing all irc events the bot sees; and "irc-action" for publishing instructions to the bot.
  • Zookeeper -- The bot listents to the "/bot/config" tree and will respond to keep itself inline with the desired config. The supported config objects currently are "channels", "name", and "ignore".
  • Spark -- Since the logs are stored in flat files in HDFS, I use Spark to run queries over those files to search for e.g. who said what

Future:

  • Fail-Over -- I want to implement some kind of fail-over for each of the bot components.
  • HBase ? -- The flat-file business is awful, but since I'm more interested in the architecture of the bot itself (and the gross JSON datastore works well enough for now) this is lowest on the list.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors