10 comments

[ 7.8 ms ] story [ 77.6 ms ] thread
I 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.

I have been looking at using Rails Engines recently playing around with trying to get an idea off the ground.
Rails engines are one of the most underrated features that everyone should be using more.
Miss seeing rails in the wild
The 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.

Hmm, do you have some links/blogs to share about this - would be interested to know more.
One 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.
I 100% agree which has led me in saying "modules > microservices" for our onboarding documentation.
Offset-based pagination will be a problem on big tables.