Hasura - Was ist das?
Hasura ist eine Open-Source-Engine, die Entwicklern ermöglicht, schnell und effizient moderne Anwendungen und APIs zu erstellen. Sie generiert automatisch eine GraphQL-API aus verbundenen Datenbanken und anderen Datenquellen. Dieser Artikel untersucht die Hauptmerkmale, Einsatzmöglichkeiten sowie Stärken und Schwächen von Hasura.
Hauptmerkmale
Hasura erstellt automatisch ein GraphQL-Schema basierend auf den verbundenen Datenquellen, was den Aufwand für die API-Entwicklung erheblich reduziert. Eine herausragende Funktion ist die Unterstützung von Echtzeit-Abonnements, die es ermöglichen, Änderungen in den Datenbanken in Echtzeit zu verfolgen und darauf zu reagieren. Dies ist besonders relevant für Anwendungen, die eine hohe Interaktivität und Aktualität erfordern.
Die Engine bietet umfassende Sicherheitsfunktionen, einschließlich rollenbasierter Autorisierung und standardisierter Authentifizierungsmuster, um den Zugriff auf Daten zu kontrollieren und zu sichern. Die "Actions"-Funktion ermöglicht es Entwicklern, benutzerdefinierte Geschäftslogik als GraphQL-API-Endpunkte zu integrieren, was eine flexible Möglichkeit bietet, komplexe Geschäftslogik in die API zu integrieren. Zudem kann Hasura mit verschiedenen Datenquellen wie PostgreSQL, REST-APIs und anderen GraphQL-APIs verbunden werden, was besonders nützlich in heterogenen IT-Landschaften ist.
Hasura wurde im Juli 2018 veröffentlicht und wird von der gleichnamigen Firma mit Sitz in San Francisco und Bangalore weiterentwickelt. Die Software unterstützt relationale Datenbanken wie PostgreSQL, MySQL und MS SQL und bietet eine dynamische Erweiterung der API sowie ein umfassendes Rechtemanagement, um die Entwickler im weiteren Verlauf der Produktentwicklung nicht einzuschränken.
Einsatzmöglichkeiten
Beschleunigte Entwicklung und Bereitstellung
Die automatische Schema-Generierung und die sofort einsatzbereite API ermöglichen eine schnellere Entwicklung und Bereitstellung von Anwendungen.
Datenaggregation und -manipulation
Hasura bietet umfangreiche Möglichkeiten zur Datenaggregation, -filterung, -sortierung und -paginierung, was besonders in datenintensiven Anwendungen nützlich ist.
Integration in bestehende Systeme
Hasura kann schrittweise in bestehende Anwendungen integriert werden, die bereits auf PostgreSQL basieren, was den Übergang zu einer modernen GraphQL-Architektur erleichtert.
Stärken
Effizienz: Automatische Schema-Generierung und sofort einsatzbereite APIs reduzieren die Entwicklungszeit erheblich.
Echtzeit-Funktionalität: Unterstützung von Echtzeit-Abonnements ermöglicht hochinteraktive Anwendungen.
Sicherheit: Robuste Sicherheitsmechanismen schützen sensible Daten und gewährleisten die Einhaltung von Datenschutzbestimmungen.
Flexibilität: Unterstützung für mehrere Datenquellen und benutzerdefinierte Logik bietet hohe Anpassungsfähigkeit.
Erweiterbarkeit: Hasura kann um eigene GraphQL APIs erweitert werden, was die initial automatisch generierte API beliebig erweiterbar macht.
Event-Handling: Hasura kann basierend auf Datenänderungen oder zeitgesteuert Events veröffentlichen, die von anderen Systemen konsumiert werden können.
Schwächen
Komplexität: Die Vielzahl an Funktionen kann für Einsteiger überwältigend sein und eine steile Lernkurve erfordern.
Abhängigkeit von relationalen Datenbanken: Hasura ist nur mit relationalen Datenbanken kompatibel, was die Flexibilität einschränken kann, wenn andere Datenbanktypen benötigt werden.
Begrenzter Mehrwert bei einfachen Datentypen: Wenn die Applikation nur wenige verschiedene Datentypen abfragt, bietet Hasura keinen signifikanten Mehrwert.
RESTful API-Unterstützung: Die Bereitstellung von RESTful APIs ist möglich, kann jedoch mit anderen Tools einfacher umgesetzt werden.
Nutzung bei Canida
Bei Canida nutzen wir Hasura, um die Entwicklung individueller Softwarelösungen für unsere Kunden zu beschleunigen. Durch die automatische Generierung von GraphQL-APIs können wir innerhalb von 48 Stunden mit Projekten starten und bereits nach wenigen Wochen erste Prototypen liefern. Dies ermöglicht es unseren Kunden, frühzeitig Feedback zu sammeln und ihre Produkte iterativ zu verbessern. Die Echtzeit-Funktionalität von Hasura unterstützt uns dabei, hochinteraktive Anwendungen zu entwickeln, die sich nahtlos in die bestehenden Geschäftsprozesse unserer Kunden integrieren lassen.