I run a cluster for the Debian Administration website, and the code is starting to show its age. Unfortunately the code is not so modern, and has evolved a lot of baggage.
Given the relatively clean separation between the logical components I'm interested in trying something new. In brief the current codebase allows:
- Posting of articles, blog-entries, and polls.
- The manipulation of the same.
- User-account management.
It crossed my mind the other night that it might make sense to break this code down into a number of mini-servers - a server to handle all article-related things, a server to handle all poll-related things, etc.
If we have a JSON endpoint that will allow:
- GET /article/32
- POST /article/ [create]
- GET /articles/offset/number [get the most recent]
Then we could have a very thin shim/server on top of that whihc would present the public API. Of course the internal HTTP overhead might make this unworkable, but it is an interesting approach to the problem, and would allow the backend storage to be migrated in the future without too much difficulty.
At the moment I've coded up two trivial servers, one for getting user-data (to allow login requests to succeed), and one for getting article data.
There is a tiny presentation server written to use those back-end servers and it seems like an approach that might work. Of course deployment might be a pain..
It is still an experiment rather than a plan, but it could work out: http://github.com/skx/snooze/.