Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you architect complex Rails systems [closed]

We have the following systems (and more) that we push/pull data from one app to another:

  • Hosted CRM (InsideSales.com)
  • Asterisk phone system (internal)
  • Banner ad system (openx, we host)
  • A lead generation system (homegrown)
  • Ecommerce store (spree, we host)
  • A job board (homegrown)
  • A number of job site scrapes + inbound job feeds
  • An email delivery system (like Mailchimp, homegrown)
  • An event management system (like eventbrite, homegrown)
  • A dashboard system (lots of charts and reports pulling info from all other systems)

With Rails 3 around the corner, I really want to pursue a micro-app strategy, but I'm trying to decide if I should have the apps talk via REST HTTP API or because I control them all, should I do something like shared models in the code which simplifies but also allows for stuff to leak across boundries much easier...

I've heard 37signals has lots of small apps, I'm curious how those apps communicate with each other... Or if you have any advice from your own multi-app experience.

Thanks! I tried asking this on my blog http://rywalker.com/chaos-2010 too a while back.

like image 838
ryw Avatar asked Jun 09 '10 17:06

ryw


2 Answers

I actually got an email response from DHH...

We use a combination of both, but we default to REST integration. The only place where we use direct database integration is with 37signals ID user database. Because it needs to be so fast. REST is much more sane. Start there, then optimize later if need be.

like image 127
ryw Avatar answered Sep 26 '22 23:09

ryw


Last time I had to crazy-glue a bunch of small applications together, I used a simple REST API.

Bonus points: it allows for integration with services / apps written in other languages.

Also helps if you've got a crazy buzz-word loving manager who likes to pivot technologies without warning.

like image 22
ALW Avatar answered Sep 25 '22 23:09

ALW