Ohje.
Wie im Thema Aktueller Stand und weiterer Plan beschrieben brauchen wir nun zum Verarbeiten als Vektorkacheln eine PostGIS-Datenbank für das Portal.
Bisher läuft schon eine MongoDB für die Account/Auth/Track/Kommentar-Daten, und eine Redis für die Work Queue. Mit Docker ist das zwar relativ einfach alles zu starten, aber nicht besonders gut „ordentlich“ zu maintainen. Und drei Datenbanken getrennt korrekt zu verwalten ist eher unrealistisch, das wird/will niemand machen.
Ich überlege also, die API umzubauen auf PostgreSQL und auch die Work Queue einfach erstmal darin zu implementieren. Im Moment nutze ich da so eine Library, und die macht das ganz einfach, aber eigentlich würde ein kleiner Polling Worker reichen der nach unverarbeiteten Tracks sucht und die dann abarbeitet. Da braucht es nichtmal eine richtige „Work Task“ Abstraktion…
Und als ich so weit war, dachte ich mir: warum nicht die API gleich auch in Python schreiben? Das sind im Moment wie gesagt nur die Verwaltung der Accounts, Auth, Tracks und Kommentare. Und damit würde das Anstoßen der Verarbeitung und die ganze Integration von obs-face auch noch wesentlich einfacher werden…
Jetzt wollte ich eigentlich mal aufhören technisch alles umzubauen, und endlich mal vorankommen. Aber irgendwie bin ich mit diesem Technologie-Mix immer noch nicht zufrieden. Außerdem scheint eh niemand Bock auf Node.JS oder Python zu haben, und dann haben wir wenigstens nur eins von beidem
Was sagt ihr? Bin ich mal wieder zu perfektionistisch unterwegs, oder sollten wir die Technologie hier vereinheitlichen? Konkrete Ideen:
- API: Node.JS (express, mongoose, …) → Python (z.B. sanic, sqlalchemy, …)
- Queue: Redis → PostgreSQL
- Database: MongoDB → PostgreSQL
- Worker: Node.JS (call python script) → Python (import python library code)
- Migrations: Selbstgebaut → z.B. Alembic
- Authentication: Selbstgebaut → Keycloak
- Super Idee, mach das!
- Mach das, ich helfe dir sogar dabei!
- Nah, das würde ich lieber erstmal so lassen.
- Ich mag Node.JS lieber als Python.
- Ich hab keine Ahnung und lasse soetwas lieber andere entscheiden.
0 Teilnehmer