SlideShare a Scribd company logo
RAILS ENGINES
MICRO SERVICES
AS A WAY TO
LUCAS ALENCAR
@lucasalencar
@alencar.lucas.a
@lucasandre
Rails Engines as a way to Micro services
Rails Engines as a way to Micro services
Rails Engines as a way to Micro services
Rails Engines as a way to Micro services
MONOLITHIC
ARCHITECTURE
LEVEL OF ABSTRACTION
WE ARE MAYBE MISSING A
CLASSESMETHODS MODULES ????????
CLASSESMETHODS MODULES SERVICES
MICRO SERVICES
I HATE DEVOPS!
I’M LAZY…
RAILS ENGINES
MICRO SERVICES
STARTS AT CODE
DECOUPLING
STARTS AT CODE
RAILS ENGINES ARE NOT
MICRO SERVICES
RAILS ENGINES ARE NOT
MICRO SERVICES
(YET)
IMPROVED
Communication
Collaboration
Creation
Maintenance
Comprehension
RD
STATION
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
MARKETING BI
LEADS
MANAGEMENT
SEGMENTATION
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
LEADS
MANAGEMENT
SEGMENTATION
LEADS IMPORT
MARKETING
AUTOMATION
EMAILS
CUSTOM FIELDS
SOCIAL MEDIAS
DASHBOARD
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
LEADS
MANAGEMENT
SEGMENTATION
LEADS IMPORT
MARKETING
AUTOMATION
EMAILS
CUSTOM FIELDS
SOCIAL MEDIAS
DASHBOARD
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
LEADS
MANAGEMENT
SEGMENTATION
LEADS IMPORT
MARKETING
AUTOMATION
EMAILS
CUSTOM FIELDS
SOCIAL MEDIAS
DASHBOARD
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
LEADS
MANAGEMENT
SEGMENTATION
LEADS IMPORT
MARKETING
AUTOMATION
EMAILS
CUSTOM FIELDS
SOCIAL MEDIAS
DASHBOARD
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
LEADS
MANAGEMENT
SEGMENTATION
LEADS IMPORT
MARKETING
AUTOMATION
EMAILS
CUSTOM FIELDS
SOCIAL MEDIAS
DASHBOARD
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
LEADS
MANAGEMENT
SEGMENTATION
LEADS IMPORT
MARKETING
AUTOMATION
EMAILS
CUSTOM FIELDS
SOCIAL MEDIAS
DASHBOARD
EMAIL
MARKETING
LANDING PAGES
SOCIAL MEDIA
POSTS
LEADS
MANAGEMENT
SEGMENTATION
LEADS IMPORT
MARKETING
AUTOMATION
EMAILS
CUSTOM FIELDS
SOCIAL MEDIAS
DASHBOARD
ARE FREE*
RAILS ENGINES
* Sort of…
HOW CAN I DO IT?
~/code rails plugin new engines/engineX --mountable
create
create README.rdoc
create Rakefile
create engine_x.gemspec
create MIT-LICENSE
create .gitignore
create Gemfile
create app
create app/controllers/engine_x/application_controller.rb
create app/helpers/engine_x/application_helper.rb
create app/mailers
create app/models
create app/views/layouts/engine_x/application.html.erb
create app/assets/images/engine_x
create app/assets/images/engine_x/.keep
create config/routes.rb
create lib/engine_x.rb
create lib/tasks/engine_x_tasks.rake
SINGLE
REPOSITORY
MULTIPLE
REPOSITORIES
.
├── app
├── bin
├── config
├── db
├── engines
│   ├── engineX
│   ├── engineY
│   └── engineZ
├── lib
├── public
├── test
└── tmp
1 source 'https://rubygems.org'
2
3 path './engines' do
4 gem 'engineX'
5 gem 'engineY'
6 gem 'engineZ'
7 end
8
~
~
~
~
~
~
~
~
~
~
NORMAL Gemfile
WHY NOT USE OUR
GOOD OLD GEMS?
.
├── app
├── config
└── engines
   └── engineX
      ├── app
   │   ├── controllers
   │   ├── helpers
   │   ├── models
   │   └── views
      ├── config
   │   └── routes.rb
      ├── Gemfile
       └── engine_x.gemspec
WHAT GOES INSIDE AN ENGINE?
CODE
TESTS
DUMMY APP FOR TESTS
(AUTOMATED AND MANUAL)
DATA MIGRATIONS
ROUTES
1 module EngineX
2 class Engine < ::Rails::Engine
3 isolate_namespace EngineX
4 end
5 end
~
~
~
~
~
~
~
~
~
~
~
~
~
NORMAL lib/engine_x/engine.rb
1 module EngineX
2 class Engine < ::Rails::Engine
3 isolate_namespace EngineX
4 end
5 end
~
~
~
~
~
~
~
~
~
~
~
~
~
NORMAL lib/engine_x/engine.rb
1 module EngineX
2 class Engine < ::Rails::Engine
3 isolate_namespace EngineX
4 end
5 end
~
~
~
~
~
~
~
~
~
~
~
~
~
NORMAL lib/engine_x/engine.rb
1 module EngineX
2 class Engine < ::Rails::Engine
3 isolate_namespace EngineX
4 end
5 end
~
~
~
~
~
~
~
~
~
~
~
~
~
NORMAL lib/engine_x/engine.rb
AVOID CIRCULAR
DEPENDENCIES
MAIN APP ENGINE
MAIN APP ENGINE🚫
MICRO SERVICE?
HOW A RAILS ENGINE CAN BECOME A
RD STATION
DB
EMAIL
MARKETING
LANDING
PAGES
RD STATION
DB
EMAIL
MARKETING
LANDING
PAGES
email_marketing_* landing_pages_*
RD STATION
EMAIL MARKETING DB
EMAIL
MARKETING
LANDING
PAGES
email_marketing_* landing_pages_*
LANDING PAGES DB
WHY SHOULD I USE
RAILS ENGINESINSTEAD OF GOING
ALL THE WAY TO
MICRO SERVICES ?
WHY SHOULD I USE
RAILS ENGINESINSTEAD OF GOING
ALL THE WAY TO
MICRO SERVICES ?
RAILS ENGINES
MICRO SERVICES
AS A WAY TO
Thanks
LUCAS ALENCAR
we’re
hiring! bit.ly/2dofWZj
alencar.lucas.a@gmail.com
shipit.resultadosdigitais.com.br

More Related Content

Similar to Rails Engines as a way to Micro services (20)

PPTX
Rails Engine :: modularize you app
Muntasim Ahmed
 
PDF
Rails Engines
Dimitrios Zorbas
 
PDF
Rails Engines - A presentation for the 22nd Athens Ruby Meetup
Skroutz S.A.
 
PPTX
Rails Engine Patterns
Andy Maleh
 
PPT
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
Andy Maleh
 
KEY
How to set up and test a Rails 3 Engine
nicholasf
 
PPTX
Rails engine
Jyaasa Technologies
 
PPTX
The Rails Engine That Could - In Motion
Andy Maleh
 
PPTX
Microservices Architecture & Testing Strategies
Araf Karsh Hamid
 
PDF
Taming monolithic monsters
gavinjoyce
 
PPT
Rocking the enterprise with Ruby - RubyKaigi 2010
releasebeta
 
KEY
Service Oriented Applications
Michael Bensoussan
 
PPTX
Rails Engine | Modular application
mirrec
 
PPTX
Concurrency at Scale: Evolution to Micro-Services
Randy Shoup
 
PDF
Rails engines
Ismael G Marín C
 
PPT
Rails engines
Grzegorz Witek
 
PDF
Moving complex enterprise ecommerce systems to the cloud
Elastic Path
 
PDF
A story about gemified engines
mglrnm
 
KEY
Plug it on!... with railties
rails.mx
 
PDF
Engines Lightning Talk
Dan Pickett
 
Rails Engine :: modularize you app
Muntasim Ahmed
 
Rails Engines
Dimitrios Zorbas
 
Rails Engines - A presentation for the 22nd Athens Ruby Meetup
Skroutz S.A.
 
Rails Engine Patterns
Andy Maleh
 
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
Andy Maleh
 
How to set up and test a Rails 3 Engine
nicholasf
 
Rails engine
Jyaasa Technologies
 
The Rails Engine That Could - In Motion
Andy Maleh
 
Microservices Architecture & Testing Strategies
Araf Karsh Hamid
 
Taming monolithic monsters
gavinjoyce
 
Rocking the enterprise with Ruby - RubyKaigi 2010
releasebeta
 
Service Oriented Applications
Michael Bensoussan
 
Rails Engine | Modular application
mirrec
 
Concurrency at Scale: Evolution to Micro-Services
Randy Shoup
 
Rails engines
Ismael G Marín C
 
Rails engines
Grzegorz Witek
 
Moving complex enterprise ecommerce systems to the cloud
Elastic Path
 
A story about gemified engines
mglrnm
 
Plug it on!... with railties
rails.mx
 
Engines Lightning Talk
Dan Pickett
 

Recently uploaded (20)

PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Python basic programing language for automation
DanialHabibi2
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Ad

Rails Engines as a way to Micro services