We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Promiscuous: A robust service-oriented architecture framework

Formal Metadata

Title
Promiscuous: A robust service-oriented architecture framework
Title of Series
Number of Parts
50
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language
Producer
Production PlaceMiami Beach, Florida

Content Metadata

Subject Area
Genre
Abstract
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. 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.