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

Beam Stack under my umbrella

Beam Stack under my umbrella

An Elixir Umbrella application decoupled architecture that runs on a Beam Stack (Elixir, CouchDB, RabbitMQ).

Emanuel Mota

February 23, 2017
Tweet

More Decks by Emanuel Mota

Other Decks in Programming

Transcript

  1. @emota7 CouchDB is a NoSQL database, developed in Erlang, that

    stores JSON documents and exposes its functionalities through an HTTP API.
  2. @emota7 •Cloudant Sync - mobile •PouchDB - web Allows for

    an offline first approach Client Implementations
  3. @emota7 No Elixir client for Couch A. build your own

    client ? B. use an existing erlang client ?
  4. @emota7 CouchDB Chalenges • Setup (serialising, deserialising) • MapReduce for

    querying is hard even though it sounds cool • Setup testing
  5. @emota7 why an Umbrella • Make project manageable as it

    grows • Organise it in a way that it is easy to split / replace / delete code • Strong boundaries
  6. @emota7 If deploying an umbrella to Heroku (or no load

    balancer) Based on a gist shared by @wojtekmach https://github.com/wojtekmach/acme_bank/tree/master/apps/master_proxy
  7. @emota7 why RabbitMQ • Messaging is asynchronous • Connect applications

    to each other as components • Decoupling • Scaling
  8. @emota7 • Tracking errors across queues • Planing Consumers/ Publishers

    • Rabbit is not a data storage • Can become complex Rabbit Chalenges
  9. A rubyist conclusion • Elixir completely different beast from Ruby

    • OTP is full of treasures • The need to think in processes and supervision trees