On Sat, 07 Mar 2020 at 16:01:52, Frédéric Mangano-Tarumi wrote:
Here\u2019s a demonstration of a Python web stack running next to the current PHP stack, such that it\u2019s invisible to the client.
This approach aims at providing a way to migrate the PHP code base to Python, one endpoint after another, with as little glue as possible to have the two backends collaborate. Since they are both mounted on the web root, Python could implement, say, /packages/ and leave the rest to PHP. As soon as PHP yields it by returning 404 on this URL, Python will take over automatically. [...] --- aurweb/wsgi.py | 15 +++++++++++++++ conf/nginx.conf | 23 +++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 aurweb/wsgi.py create mode 100644 conf/nginx.conf
Thanks! I like the approach. I wonder what the performance impact of always querying the Python backend first would be, though, especially at the beginning when most requests are expected to yield a 404. Alternatively, would it make sense to use multiple location blocks and use the right upstream based on matching the path against a predefined set of patterns? It would add some additional maintenance work but since the overall plan is to migrate everything to Python eventually, it would exist only temporarily. I guess we could use a similar approach if we ever wanted to decouple certain endpoints completely and make them a separate app (optionally sharing some code with the "main" backend). For an actual first patch to be merged, I suggest porting the RPC interface which is rather small and largely independent from other parts of the code. This patch should also add instructions to the documentation: both INSTALL and doc/maintenance.txt need to be updated. Maybe also add a note to README.md.