Published on by Eric L. Barnes
Lumen is a brand new PHP framework from Taylor Otwell designed for building lightning fast micro-services and API’s. When speed is a necessity, Lumen should be your first choice.
One of the neat things about the framework is you can still use all the Laravel features you love like Eloquent, caching, queues, validation, routing, middleware, and the powerful Laravel service container. Plus if you start your project with Lumen and eventually need even more power, moving to the full featured Laravel is a simple process.
To find out more behind the scenes I had a quick interview with Taylor about the project:
What made you decide to create Lumen?
When I was building Envoyer, I wrote two small “micro-services” to support it. One of them is the post-deployment health checks. That is a small application that lives in three different DigitalOcean regions. I used Silex for that application; however, I had to re-research how to make a PDO database connection. I would have loved to just have a very small Laravel installation that I could use
DB::update out of the box.
The other Envoyer service is the “heartbeat” Cron monitoring. Since these URLs could be called every minute by hundreds, if not thousands of Cron jobs, I needed that to be very fast. So, I used Slim for that service. But, again, I had to setup some more robust error handling as well as database connections. I again would have preferred a small Laravel “light” installation.
That’s where the idea for Lumen was born. It took me three or four iterations of building the framework to find a solution that was fast enough. I was not going to release Lumen unless I could say it’s faster than Silex and Slim out of the box. I didn’t want to release something that was slower than the alternative options.
Where did the name Lumen come from?
Lumen is a play on the “Illuminate” components that Laravel utilizes. The Illuminate components are the individual pieces of the Laravel framework such as database, cache, queue, etc. So, first, I think Lumen sounds cool as a name. It’s only two syllables, instead of three like Laravel. That may sound crazy, but I think about that kind of thing and the mental images that are conjured up when you say the word. Of course, it also continues the tradition of “light” based names.
Being able to upgrade right into Laravel is huge. Was this the plan from the beginning?
Yes, and it’s really just a natural outcome of using the Illuminate components that make up the full-stack Laravel framework. Since we use those components, it’s easy to provide a really great upgrade story, and I feel like that is something missing from other micro-framework solutions. Since the Laravel eco-system now contains both a full-stack framework and a micro-framework that are “officially” supported, we can provide really great upgrade stories.
How were you able to get the framework so fast, while still keeping so many great features?
This is again due to the great convenience of the Illuminate components. Basically, all I needed to do was “glue” them together in a different way than a full-stack framework would glue them together. This means instead of maximum flexibility in the bootstrapping process, Lumen opts for maximum speed. The actual Lumen framework repository is probably only a dozen files or so. The rest is made up of the Illuminate components. This allowed me to flesh out the features of the framework very quickly, though it did take me three or four iterations to find a solution that was really, really fast while still providing very powerful features.
Lumen is surely to a big hit and I think the way you can easily move into Laravel is a huge long term benefit for not only Lumen but the whole Laravel ecosystem. To stay up to date with all the latest happenings on Lumen be sure and join the weekly newsletter.