Aktuell ist eine Schnittstelle mittels jrpc implementiert (Socketverbindung, Beispiel für client auch im git). Alternativen können einfach an den db_connector der Wahl gehängt werden und erlauben einen schnellen Wechsel der systemseitigen Verbindungsmöglichkeit. Es stehen zur Auswahl:
echo
Gibt die Eingabe zurück.
upsert
Die feed_id gibt die Tabelle an. Dort wird überprüft, ob es bereits einen Eintrag mit der prod_id gibt. Wenn Ja wird die payload verglichen, bei gleicher payload wird nichts weiter unternommen. Bei Änderungen an der payload oder wenn die prod_id neu ist wird der neue Datensatz in die DB aufgenommen.
get_changes_to_HEAD
Es wird aus dem angegebenen Feed die aktuellste Version von jeder prod_id zurück gegeben, wenn es Änderungen seit from_time gegeben hat. Wenn from_time nicht angegeben wird gibt es einen vollen Export, da dann von Beginn an gesucht wird. Suche kann mit prod_ids eingeschränkt werden.
Mittels db_connector wird eine Datenbank angebunden. Aktuell gibt es einen connector für die TinyDB. Für den Produktiveinsatz ist die nicht geeignet, aber um den neuen Streambasierten feed_import zu erproben ist es eine einfache und leichtgewichtige Wahl ohne unnötige Komplexität. Alternative Datenbanken lassen sich mittels eigenem db_connector einbinden.
Idee: “db”_connector auf Dateiebene bauen für das Plus an Geschwindigkeit, da sich vieles auf sequentielles Lesen zurückführen lässt.
Verwendete Komponenten:
Übersicht: Die MetaDB speichert für jedes Produkt eine Historie an Daten. Über eine Konfiguration lässt sich per Feed einstellen, wie lange veraltete MetaDaten aufbewahrt werden sollen.
API:
Ideen: