librelist archives

« back to archive

Photon roadmap : timeline ?

Photon roadmap : timeline ?

2011-03-25 @ 09:59

Is there a roadmap for Photon ? With release dates ? And main features of
releases ?

Thank you

[photon.users] Photon roadmap - long answer

Loic d'Anterroches
2011-03-25 @ 12:34

> Is there a roadmap for Photon ? With release dates ? And main features
> of releases ?

not at the moment. If you read the archives, you will see regular "mini
roadmap" stuff to explain what I am working on, but without deadlines.

At the moment:

- authentication (mostly done)
- user class/backend/storage (to do to have robust auth)
- hooks/events
- phar packaging

I really want to have the .phar packaging done right. My idea is that
projects will always be deployed as .phar and that you can also make
available an app directly as a .phar. A .phar archive can easily be
extracted, but it has the added benefit of having a signature and
signature for each file (crc32). So you can ensure the integrity of your

The second benefit of delivery everything as a .phar is that you can
have a smart .phar builder which will do the work of compressing the
.js/.css merging them as needed, etc. If you combine that with the crc32
checksum, this means you can forget about all the hacks with filename
etc. to cache the assets at the browser level, you can directly use the
checksum as a strong ETag. You can even put the mime type in the meta
data, so this is extremely powerful.

At the end, it means that if the PECL extensions you need for your
project are available and if the php.ini has the right settings, your
project is a single file installation + config file (if you do not
include it directly into the .phar).

For me it means that I can easily deploy the same project on many
different VMs. I can easily run different versions for different hosts,
etc. In fact, the next step which I am going to do for me and will
anyway release it at the same time for everybody (or possibly make it a
builtin of Photon) is to have Heroku for free:

1. The HTTP Reverse Proxy/HTTP Cache is basically Mongrel2.
2. The routing mesh is ZeroMQ.
3. The Dyno Grid are the Photon handlers.
4. The databases/cache are up to you.

What is really nice with the current architecture of the Photon handlers
is that it is already ready to handle the data migration cases,
reloading, etc.

You can do something like:

1. push your new .phar online.
2. if needed trigger a maintenance page on all the currently running
   handlers to run a migration from the new .phar
3. smooth reload of all the handlers without connection loss.

Of course the final "step" is to push in your SCM of choice with a post
commit/push hook triggering the build of the .phar and the deployment.
Depending of the branch in which you push, you deploy on the test/CI,
staging or production servers.

Coming back to the roadmap, the goal is to:

- provide a very simple and very robust core Photon.
- and a very easy way to propose/upload "particles".

At the end, it means that the core is small/lean/efficient but that you
as developers can be really creative and have a lot of ideas with

I hope it helps.

Indefero - Project management and code hosting -
Photon - High Performance PHP Framework -
Céondo Ltd - Web + Science = Fun -