Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Service-Oriented Patterns in Ruby

Tony Winn - Developer @envylabs and @codeschool

Service-Oriented Patterns in Ruby

Tony Winn - Developer @envylabs and @codeschool

How to Love your large ruby app.

Tony Winn - Developer @envylabs and @codeschool

How you start to loose that loving feeling.

How you start to loose that loving feeling.

How you start to loose that loving feeling.

How you start to loose that loving feeling.

What’s the best way to write a large rails app?

"Don't"

- Conventional Wisdom

Build many small applications.

Big Apps = Suck

Small Apps = Win

Big Apps == Suck

Small Apps == Win

Poorly-Structured Systems = Suck

Well-Structured Systems = Win

So what structure is best for my “system”?

It depends.

*maybe the most true thing ever said about software.

Factors you want to think about.

Factors you want to think about.

Factors you want to think about.

Factors you want to think about.

Don’t optimize prematurely.

* probably the second most true saying in software

Take the smallest next right step for your application.

Take the smallest next right step for your application.

Take the smallest next right step for your application.

Take the smallest next right step for your application.

Take the smallest next right step for your application.

If after any of these steps your team is of proud of the application, stop.

The last resort*: Service-Oriented Architecture

When to reach for SOA first.

When to reach for SOA first.

When to reach for SOA first.

When to reach for SOA first.

SOA Patterns in Rails

Rails -> DB -> Service

Rails -> DB -> Service

Rails -> DB -> Service

Rails -> DB -> Service

Rails -> clientside js -> Service

Rails -> clientside js -> Service

Rails -> clientside js -> Service

Rails -> clientside js -> Service

Rails -> HTTP -> Service

Rails -> HTTP -> Service

Rails -> HTTP -> Service

Rails -> Messaging Queue -> Service

Rails -> Messaging Queue -> Service

Rails -> Messaging Queue -> Service

Rails -> Messaging Queue -> Service

Rails -> Messaging Queue -> Service

Common Roadblocks

Sharing User Sessions

Sharing User Sessions

Sharing User Sessions

Sharing User Sessions

Sharing User Sessions

Sharing Common Logic

Sharing Common Logic

Sharing Common Logic

Sharing Common Logic

Questions/Experiences

Further Learning