Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hello Kitto: A Dash of Data Processing in Elixir

Hello Kitto: A Dash of Data Processing in Elixir

Slides for a talk I gave at Elixir NYC.

Avatar for David Long

David Long

March 28, 2017
Tweet

More Decks by David Long

Other Decks in Technology

Transcript

  1. @davejlong Hello Kitto Who Am I ▸ @davejlong on Twitter

    ▸ Director of Dev, Cage Data ▸ Co-Founder of DevOps CT ▸ Core contributor on Kitto ▸ Husband of 1; Father of 2 ▸ Missionary to Uganda ▸ Blogger at davejlong.com THIS GUY’S COOL I SHOULD TALK TO HIM
  2. @davejlong Hello Kitto What Is Kitto ▸ Heavily inspired by

    Shopify's Dashing ▸ Jobs generate data ▸ Widgets display data “Kitto is a framework to help you create dashboards, written in Elixir / React.”
  3. @davejlong Hello Kitto History Of Kitto ▸ Started by Dimitrios

    Zorbas (zorbash) ▸ First commit on April 26, 2016 ▸ 0.1.0 released on October 21, 2016 ▸ Currently on 0.5.1 ▸ 11 contributors ▸ 20 forks ▸ 481 stars
  4. @davejlong Hello Kitto What Is A Job? ▸ Adds data

    to event stream ▸ Server-side events ▸ Written in Elixir (or shell command) ▸ Can get data from anywhere ▸ Pull data from remote APIs ▸ Talk to physical things (Arduino) ▸ Interact with database
  5. @davejlong Hello Kitto What Is A Widget? ▸ Display for

    data from jobs ▸ Written in React ▸ Styled in SCSS
  6. @davejlong Hello Kitto Command Line Interface ▸ Run a server

    with webpack based asset bundling ▸ Generate new pieces to the dashboard ▸ Dashboards ▸ Jobs ▸ Widgets
  7. @davejlong Hello Kitto Package Management ▸ Written by Jan Stevens

    (janstevens) ▸ Install widgets and jobs from GitHub Gists ▸ Public list on wiki
  8. @davejlong Hello Kitto What Else Is There ▸ Rotating through

    dashboards ▸ Streaming data through jobs ▸ Live code-reloading on dev ▸ Webhooks*
  9. @davejlong Hello Kitto Why Elixir ▸ Functional programming is wonderful

    for data manipulation ▸ OTP makes error handling easier ▸ Ruby struggles with concurrency and asynchrony ▸ Dashing was dead
  10. @davejlong Hello Kitto OTP In Kitto ▸ Code is a

    state ▸ Data is a state ▸ 3 Supervisors ▸ 4 GenServers ▸ Every job is a child
  11. @davejlong Hello Kitto FP for Data Manipulation ▸ Pipe-driven development

    makes code concise ▸ Flow makes manipulating streams more manageable
  12. @davejlong Hello Kitto How Can You Help ▸ Help work

    through our 1.0 requirements ▸ Triage and fix bugs ▸ Write jobs and widgets ▸ Use Kitto