Prose Pod API as part of Prose Pod Server #368
Replies: 2 comments
-
|
Would fix #326 (not relevant anymore). |
Beta Was this translation helpful? Give feedback.
-
|
When upgrading to the version where the Pod API is part of the Pod Server, ops would have to move Prose data around in order for the Pod Server to have access to the Pod API’s database. While we could do it in a backward-compatible manner, this would lead to confusion about what data goes where. To simplify deployments, backups, etc., we should put all data in the At startup, if the Pod Server doesn’t find |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Context
Up until now, the Prose Pod API has always been a separate Prose Pod component, with its own repository and Docker image. For reasons explained in “Prose Pod Server architecture: Server API vs XMPP server”, some of the Prose Pod API logic was recently moved to the Prose Pod Server. The argument for keeping both HTTP APIs separate was mainly to reduce XMPP server downtime when running updates (for higher availability). This new architecture came with a lot of great benefits, but it also came with downsides:
TL;DR: It’s annoying for devs, annoying for ops, it will likely cause more downtime… there’s very few positive aspects in fact. Here is an overview:
Summary:
Details (more exhaustive): [tap to reveal]
edgerelease. It’s built with less optimizations so it’s faster but it still takes around 1h10 for the Pod API. That’s wasted computing power and energy.Decision
Over the next months, we will progressively move logic from the Pod API to the Pod Server API. The architecture won’t change, the Pod API will act as a relay. The prose-pod-api repository has a lot of tooling related to testing and demo; this will take time to merge in prose-pod-server.
After all routes have been moved to the Pod Server API, we will move all of the tooling out of prose-pod-api, and create a clean “mono repository”. The prose-pod-api repository will be archived, and its open issues and discussions will be moved over to the prose-pod-server repository. When that’s done, we will archive the prose-pod-api repository and mention where it lives now.
Consequences
This new architecture will fix all of the issues listed in “Context”. It will greatly improve the overall developer experience of the Prose backend and make code more readable/auditable. Prose Pods will also become easier to deploy and operate. Here are some other consequences (non-exhaustive):
Beta Was this translation helpful? Give feedback.
All reactions