-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor API servers into one modular server #60
Conversation
Updates:
|
I'm late to the party, but I wanted to add that I actually really prefer the microserver architecture that is in there now to this. It gives the freedom to break out parts of the functionality of the system and replace them with other tools in a modular fashion behind the main API facade. That's a really powerful pattern, and I'd rather keep it. |
I want to be quite specific here, I want the ability to plug in different API frameworks, all the way up to language runtimes, under the main /api facade. |
This change should in fact make it easier to implement services with other language runtimes, as it's starting a process of breaking apart the functionalities provided in particular by what was As a specific example, |
Ah! I misunderstood the level at which the split was occurring. 👍🏻🤟🏻
On Sat, Sep 8, 2018 at 11:15 AM Eemeli Aro ***@***.***> wrote:
This change should in fact make it easier to implement services with other
language runtimes, as it's starting a process of breaking apart the
functionalities provided in particular by what was kansa into smaller
modules, which may then in turn be enabled or disabled. No changes are made
to e.g. persistence.
As a specific example, stripe is now a module alongside hugo and raami
because the overhead involved in splitting into a module (mostly in terms
of complexity) is now sufficiently low that it makes sense. To now use an
alternative implementation for it, it suffices to disabled the express.js
module from the kansa.yaml config, add the alternative to your container
orchestration, and configure your reverse proxy for it. Previously doing
the same would have been somewhat messier.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
<#60 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AALFvWjVVHhxPfLY4LJpN7AcxQRKx21Xks5uZAkkgaJpZM4Wf4IX>
.
--
--
Chris R
offby1 on Twitter, offbyone on github
Not to be taken literally, internally, or seriously
|
So as it turns out I didn't let this rest for a while.
I'm going to now merge this into master, and effectively continue development in a new |
Fixes #57
This PR effects a number of related changes:
kansa
is renamed asserver
(database schema is stillkansa
, mind), and becomes the only remaining front-facing express.js server. Relatively few code changes except for the loading of optional modules:hugo
andraami
are each refactored as modules, and moved undermodules/
nginx
is renamed asproxy
modules
section is added toconfig/kansa.yaml
Actual implementation and functionality should not be affected by any of these changes, and there are no changes to the database. A few things that should belong to individual modules don't yet; specifically the tests for Hugo nomination endpoints are still under
integration-tests/
.