Hinweis: Dieses Projekt ist noch nicht für den allgemeinen Verbrauch gedacht.
Dieses Programm bietet eine sehr minimale Backend -API für ein Event -Sourcing -System.
Die Hauptmerkmale sind:
Der Ereignisstrom ist ein Nur-Append-Protokoll aller Änderungen an strukturierten Daten Ihrer Anwendung. Der Client kann diesen Ereignisstrom verwenden, um eine Projektion auf die strukturierten Daten zu erstellen, im Grunde genommen der Status Ihrer Anwendungsdaten zu einem bestimmten Zeitpunkt.
Die Vorteile des Speicherns Ihrer Anwendungsdaten als Ereignisstrom sind:
Das Backend kann mit einer statisch kompilierten Linux -Binärdatei zusammengestellt werden, die als CGI -Programm für die meisten Hosting -Anbieter (unter Linux) ausgeführt werden sollte. Dies erfordert, dass der Nix -Paket -Manager installiert wird (um eine Binärdatei zu erstellen, die Musl anstelle von GLIBC verwendet).
Bitte stellen Sie sicher, dass der Webserver den Authorization ( HTTP_AUTHORIZATION -Umgebungsvariable) an das CGI -Skript übergibt. Für Apache können Sie das bereitgestellte cgi-bin/.htaccess verwenden.
Das Backend kann auch Standalone mit dem Warp HTTP -Server ausführen. Bitte beachten Sie jedoch, dass es sich nicht um eine effiziente Implementierung handelt: Wir verwenden Dateisperrungen als Primitive für die Synchronisation.
Der Plan besteht darin, ein effizientes Multi-Threading-Server-Backend mit STM zu erstellen.
curl -X PUT -H " Content-Type: application/json " --data @event.json http://localhost:8000/events
curl http://localhost:8000/events
curl http://localhost:8000/events ? from=0d0ef6946e84a7bb64c600709c05edda81d2ebec8b85ced529ae56a9de5eb9cb
curl http://localhost:8000/events ? to=0d0ef6946e84a7bb64c600709c05edda81d2ebec8b85ced529ae56a9de5eb9cb
curl http://localhost:8000/events/0d0ef6946e84a7bb64c600709c05edda81d2ebec8b85ced529ae56a9de5eb9cbcurl -X PUT -H " Content-Type: application/pdf " -T ~ /Documents/test.pdf http://localhost:8000/storage/
curl -X GET http://localhost:8000/storage/0d0ef6946e84a7bb64c600709c05edda81d2ebec8b85ced529ae56a9de5eb9cb --output test.pdf
curl -X DELETE http://localhost:8000/storage/0d0ef6946e84a7bb64c600709c05edda81d2ebec8b85ced529ae56a9de5eb9cb