8 ms·
Building Modular Rails Applications: A Deep Dive into Rails Engines
- matltc 1y agoMiss seeing rails in the wild
- pqdbr 1y agoRails is not only alive and well, but actually booming.
- Octoth0rpe 1y ago> Rails is not only alive and well, but actually booming. Do you have any references that validate this? Rails 'booming' on a 3 year time scale wouldn't surprise me, but would on a 10 year scale.
- nonconstant 1y agoWe're experiencing a global peak of Ruby meetups (globally). About 800-900 meetups in the last 12 months as per https://rubyconferences.org/meetups/ https://rubyconferences.org/meetups/ I'm hosting probably the largest Ruby meetup in San Francisco, see https://lu.ma/sfruby https://lu.ma/sfruby Rails is not at the peak of visibility (like it was in 2008-2014), it is not a "default stack for new products" but here's what we see: Rails startup just did a large IPO (Chime), another Ruby startup filed for IPO (Figma) Rails startup just posted a record ARR growth (bolt.new) Lots of startups and lots of success stories. See https://evilmartians.com/events/startups-on-rails-in-past-present-and-future https://evilmartians.com/events/startups-on-rails-in-past-pr... Again, not the #1 or "default" choice, which is probably a good thing, because we are past the hype+disappointment cycle and on the pragmatic side of things.
- nonconstant 1y agoThere's a new data point: Ruby is #5 most used and #3 most loved language as per the recent Pragmatic Engineer survey! https://newsletter.pragmaticengineer.com/p/the-pragmatic-engineer-2025-survey https://newsletter.pragmaticengineer.com/p/the-pragmatic-eng...
- october8140 1y agohttps://hnhiring.com/technologies/rails https://hnhiring.com/technologies/rails
- henning 1y ago[flagged]
- adenta 1y agoWhat problem was created?
- pqdbr 1y ago"one basic thing like handling file uploads" - say no more. Actually, the article isn't even about handling file uploads - it's about deliberately creating a modular admin panel for dealing with file uploads. It's not modularity for "framework-y" sake, but to easily deploy that admin panel in other applications with literally a one-liner.
- giovapanasiti 1y agoI couldn't have written this comment better myself. Thank you this is exactly the point
- helle253 1y agoI love Rails Engines, it's a very slick feature. I recently migrated a featureset from one Rails project into another, as a mounted engine, and ensuring isolation (but not requiring it!) has been tremendously helpful.
- hk1337 1y agoI have been looking at using Rails Engines recently playing around with trying to get an idea off the ground.
- GGO 1y agoRails engines are one of the most underrated features that everyone should be using more.
- capevace 1y agoThe Filament package for Laravel lets you build similarly encapsulated „plugins“, that are basically mini Laravel apps, that can be easily added to existing apps. The plugins can rely on all of the Laravelisms (auth, storage etc) and Filament allows them to easily draw app/admin UI.
- tommica 1y agoHmm, do you have some links/blogs to share about this - would be interested to know more.
- mrinterweb 1y agoOne of the reasons microservice architecture originally became popular was to break apart monolithic applications. In many cases, I bet a big driver was a lack of separation of concerns, and a more modular design was desired. There are many ways to put up walls in software to help make software more modular and self-contained. Rails engines are a good way to make more a rails app more modular. The number of times I've seen microservices created for the purpose of modularity (not scaling concerns), and the complexity that has brought has really soured me on microservices.
- giovapanasiti 1y agoThis is exactly my experience. Most of the time people go to microservices for the wrong reason and they will regret that for years
- whstl 1y agoDifferent sections of an app can use different databases, if the bottleneck is in the database. Different routes can be served by different servers, if the bottleneck is in CPU usage. Different async tasks can run on different task runner services, if the problem is tasks competing with each other. Different test suites can run for different sections of the app, if the problem is with tests taking too long to run. Github and others even allow specific subfolders to be "owned" by different teams. What else is there? Even slowness of compilation and/or initialization can be alleviated, depending on the language or framework.
- stronglikedan 1y agoI think the point is that all of that adds complexity that is often unnecessary - a premature optimization if you will. It's like a hammer, and everything looks like a nail to a lot of people.
- inopinatus 1y agoGP isn’t oppositional, they listed runtime constructs that all run off a single monolith. The point being you don’t need so-called microservices for flexibility in the production environment.
- malkosta 1y agoOffset-based pagination will be a problem on big tables.
- ethan_smith 1y agoCursor-based pagination (using a unique, indexed column like `created_at` with an ID tiebreaker) would be a more efficient alternative here.