Ruby Conf 2013 - Promiscuous: A robust service-oriented architecture framework

Channel:
Subscribers:
42,400
Published on ● Video Link: https://www.youtube.com/watch?v=KsiQXAXsQDQ



Duration: 33:34
4,150 views
23


For anyone who has built an application that's larger than what a small team can build in a few months, the euphoria of working with frameworks like Rails or Sinatra is quickly lost to the pain of a sprawling disorganized code base, slow tests, and long ramp up time for new developers. Extracting Service Objects or abandoning MVC for something like MOVE only complicates the code base and fails to make things simpler. Moving to Javascript MVC helps extract a lot of view logic but you're still left with a monolithic backend. The solution we propose is to split up your monolithic app into many smaller, easy to maintain, applications.

Splitting applications is challenging for numerous reasons. One of the biggest challenge is to keep all the applications' data in sync. We introduce Promiscuous[1], an open source replication framework that facilitates data replication across applications in a safe and consistent manner. Unlike traditional approaches such as Stripe's MoSQL[2] and LinkedIn's Databus[3], which operate at the database level, Promiscuous transparently instruments the ActiveModel interface to replicate model operations by using Redis and RabbitMQ. This makes it a great solution for separation of concerns, heterogeneous database replication, and asynchronous triggers in the datacenter.

By Nicolas Viennot & Kareem Kouddous

We'll dive into the mechanics of Promiscuous and how we used it to split our monolithic application into eight small, single purpose applications. We will also show our findings in scalability, deployment, migration, unit/integration testing, and general architecture best practices laced with real world examples.

Help us caption & translate this video!

http://amara.org/v/FG4Z/




Other Videos By Confreaks


2013-12-10Ruby Conf 2013 - Lightning Talks
2013-12-10Ruby Conf 2013 - Ruby-Core dilemmas by Marc-André Lafortune
2013-12-10Madison Ruby 2013 - Local Flavor from Madison Circus Space
2013-12-10Madison Ruby 2013 Psyche and Eros by Leon Gersing
2013-12-07Nickel City Ruby 2013 Lightning Talk How I blew up everything by David Bishop
2013-12-07Nickel City Ruby 2013 Lightning Talk Shopify Checkout by Chris Saunders
2013-12-07Nickel City Ruby 2013 Lightning Talk Rails Engines in Large Apps by Enrico Teotti
2013-12-07Nickel City Ruby 2013 Lightning Talk Active Support Secrets by Prem Sichanugrist
2013-12-07Nickel City Ruby 2013 Lightning Talk Maintain or Enhance Self-Esteem by John Lange
2013-12-06Ruby Conf 2013 - Opal, A new hope (for Ruby programmers)
2013-12-06Ruby Conf 2013 - Promiscuous: A robust service-oriented architecture framework
2013-12-06Ruby Conf 2013 - Being Boring: A Survival Guide to Ruby Cryptography
2013-12-06Ruby Conf 2013 - Maintaining Sanity by Nathaniel Talbott
2013-12-06Ruby Conf 2013 - Question for Matz
2013-12-06Ruby Conf 2013 - Bad Ruby code doesn't exist
2013-12-06Ruby Conf 2013 - Your Development Machine in the Cloud by Charles Wood
2013-12-06Ruby Conf 2013 - Eliminating branching, nil and attributes - let's get weird
2013-12-06Ruby Conf 2013 - Becoming a Software Engineer: Inspiring a New Generation of Developers
2013-12-05Ruby Conf 2013 - The Polyglot in the Code - An Elixir/Ruby Mashup
2013-12-05Ruby Conf 2013 - Visualizing Garbage Collection in Rubinius, JRuby and Ruby 2.0
2013-12-05Ruby Conf 2013 - API design for gem authors (and users)