Menü
Developer

Frischer JavaScript-Client für Elasticsearch

Der JavaScript-Client trägt nun dieselbe Versionsnummer 7 wie der Elastic Stack und ist eine vollständige Neuentwicklung.

vorlesen Drucken Kommentare lesen

Elastic hat einen Monat nach der Veröffentlichung von Elastic Stack 7.0 eine neue Version des JavaScript-Client für Elasticsearch veröffentlicht. Er trägt dieselbe Versionsnummer wie der Stack und ist keine Weiterentwicklung des bisherigen Clients, der aktuell in Version v16.0.0 vorliegt. Stattdessen hat das Team ihn von Grund auf neu entwickelt. Neben Verbesserungen und neuen Funktionen bringt er einige Breaking Changes mit, also Inkompatibilitäten zu älteren Varianten.

Laut einem Blogbeitrag vom April war ein Grund für die Reorganisation und damit letztlich für das Neuschreiben des JavaScript-Clients, dass der bisherige Client aus der Versionierung des Elastic Stack ausbrach: Während alle anderen Module jeweils dieselbe Versionsnummer tragen und im April als 7.0-Release erschienen sind, war der JavaScript-Client bereits bei v15.4.1 angekommen.

Der Beitrag schildert die konkreten Probleme mit dem Bereitstellen einer neueren Softwareversion unter einer niedrigeren Nummer. Das Team hat sich für die Veröffentlichung auf npm unter dem Scope @elastic/elasticsearch mit der passenden Nummer entschieden. Das bisherige unscoped Modul soll künftig auf das neue verweisen. Damit müssen Entwickler etwaige Dependencies in ihren Modulen nicht anpassen.

Beim Neuschreiben haben die Entwickler darauf geachtet, dass sich das Modul einfacher einbinden lassen soll. Unter anderem haben sie die API neu gestaltet, um eine bessere Konsistenz zwischen Callbacks und Promises herzustellen. Über die extend-Methode können Entwickler zudem die API erweitern. Eine child-Methode erlaubt das Anlegen mehrerer Instanzen des Clients, die einen gemeinsamen Connection-Pool haben, aber unterschiedliche Optionen aufweisen.

Auch die APIs von Elasticsearch lassen sich mit dem neuen Client vollständig ohne externe Plug-ins aufrufen. Außerdem lässt sich der JavaScript-Client direkt aus TypeScript verwenden. Schließlich haben die Entwickler die Performance verbessert und sich dabei mit Blick auf Serverless-Computing-Anwendungen vor allem auf einen schnellen Start des Clients konzentriert.

Einige Entwickler müssen mit Inkompatibilitäten rechnen, wobei sich die Breaking Changes im vertretbaren Rahmen halten und vor allem überflüssige oder veraltete Zöpfe abschneiden. So setzt der Client nun mindestens auf Node.js v6 und ES6. Außerdem kennt er nur jeweils die API von Elasticsearch mit derselben Versionsnummer statt wie bisher auch älteren API-Versionen. Der integrierte Logger entfällt ebenso wie der Browser-Support – der neue Client ist ausschließlich auf den Einsatz mit Node.js ausgelegt. Aufgrund des Neuschreibens könnten spezielle Anpassungen zudem nicht mehr funktionieren.

Weitere Neuerungen lassen sich der aktuellen Ankündigung im Elastic-Blog sowie der ersten Vorstellung vom April entnehmen. In letzterem Beitrag sind auch Anleitungen zu finden, wie Entwickler inkompatiblen Code an den neuen Client anpassen können. (rme)