aquametalabs / aquameta

Web development platform built entirely in PostgreSQL
GNU General Public License v3.0
1.1k stars 52 forks source link

endpoint: Standalone daemon in Go #213

Closed erichanson closed 3 years ago

erichanson commented 4 years ago

In order to make Aquameta easier to distribute (see also #208) it would improve things greatly if the endpoint server could be boiled down to a single binary that has no dependencies and could be compiled for All The Platforms. Right now, the endpoint server is a werkzeug+uwsgi WSGI application. Werkzeug handles regular http traffic and uwsgi handles WebSocket traffic through the python uwsgi module. We want to get off this train anyway, because WSGI doesn't support http/2 multiplexing, which we really need.

Rebuild the endpoint server in Go, and distribute a nice zero-dep binary.

This daemon could also become the place where other non-data stuff happens, like sending emails and accessing the filesystem. If the daemon handled those two things, we could drop both the email extension and the filesystem extension from the system, which are the two extensions that have more complex dependencies outside the database. As such, Aquameta would just be a) PostgreSQL, b) the Aquameta core PostgreSQL extensions, c) this daemon.

erichanson commented 3 years ago

Great success! Coming in v0.3.