Nowy Workdone
Nowy Workone
Oto i jest, gotowy (prawie), działający nowy Workdone, czyli aplikacja dla perfekcjonistów z deadlinami. Dzisiaj krótko opowiem o trudnościach jakie mnie spotkały w trakcie pisania tego projektu.
Server-less?
Chciałem aby Workdone mógł żyć zupełnie bez mojej ingerencji, zaangażowania, ale obawiam się, że jest to niemożliwe.
- Firebase Cloud Functions nie potrafią wykonać się same co jakiś czas
- Jeśli będę zewnętrznie wywoływał Cloud Functions co 5s to przekroczę limit wykonań
- Firebase Admin w Pythonie nie potrafi nasłuchiwać zmian
- Nie chcę stawiać serwera na Javie czy NodeJS
- Rozwiązanie... hybryda
Mój ostateczny backend dzieli się na dwie części: Pierwsza to prosty skrypt w Pythonie, który ma za zadanie pobrać zakolejkowane powiadomienia a następnie je wysłać przez Firebase Cloud Messaging do klienta. Druga część to funkcje Firebase Cloud, które nasłuchują zmian w bazie deadlinów i aktualizują kolejkę powiadomień. Cloud Firebase jest też odpowiedzialny za tworzenie następnych powiadomień, gdy Python je wykona.
Co mi to daje?
Funkcje Firebase Cloud działają rzadko i na małej porcji danych. Python pobiera dane w ładnym zapytaniu, robi to często, ale to i tak bardzooo mały transfer. Ważne jest to, że skrypt ten może być gdziekolwiek, byle by miał dostęp do internetu. Czy to dalej server-less?
Tak, lubię wyzwania architektury systemów.
Wygląd
EOF i czy to działa?
Ten post powstał tylko przez to, że ustawiłem sobie deadline. To chyba coś znaczy, poza tym to było nawet przyjemne.
A goal is a dream with a deadline
Z Workdone możecie korzystać pod workdone.xyz, choć nie gwarantuje stabilności na ten moment :)