Meteor (Webframework)
# Meteor (Webframework)

Meteor, oder MeteorJS, ist ein auf Node.js basierendes freies JavaScript-Webframework. Es erlaubt schnelle Umsetzungen von Ideen und erzeugt plattformübergreifenden Code (Android, iOS, Browser). Als Datenbank kommt MongoDB zum Einsatz. Hauptmerkmale von Meteor sind eine einheitliche Basis in JavaScript-Code für Client und Server, eine einfache Programmierschnittstelle (API)-Design und eine einfache Softwareverteilung (Deployment) von Anwendungen.

Server und Client kommunizieren hauptsächlich via WebSocket, geregelt durch ein eigens entwickeltes Protokoll. Das Framework setzt dabei das Publish-Subscribe-Entwurfsmuster um. Änderungen im Datenmodell werden hierbei zum Client gesendet, ohne dass zusätzlicher Code für die Synchronisation geschrieben werden muss. Meteor wird mit einem voreingestellten Front-End-Framework (Blaze) ausgeliefert. Dieses kann jedoch nach Belieben durch andere Front-End-Frameworks (u. a. Vue, React, Svelte, Angular) ersetzt werden.

Die Gründerfirma hinter Meteor (Meteor Development Group, kurz MDG) startete im Y-Combinator-Programm und erhielt im Juli 2012 Risikokapital in Höhe von 11,2 Millionen Dollar. In einer zweiten Runde konnte erneut Risikokapital in Höhe von 20 Millionen Dollar eingesammelt werden. Das Kerngeschäft um Meteor besteht aus Galaxy, einem Enterprise-Level-Hosting-Angebot, speziell für Meteor-Anwendungen.

## Geschichte

Nach acht Monaten Entwicklung wurde Meteor zunächst im Dezember 2011 unter dem Namen Skybreak veröffentlicht. Im April 2012 wurde es jedoch in Meteor umbenannt und unter diesem Namen offiziell gemacht. Mit Hilfe von Risikokapital im Millionenbereich konnte Meteor schnell wachsen und erreichte so eine hohe Zahl an Nutzern und Anwendungen, die auf Basis von Meteor veröffentlicht wurden.

Nach einer zweiten Finanzierungsrunde hatte Meteor verschiedene Startups aufgekauft und in das Kernprodukt integriert. Dazu zählten etwa FathomDB, ein Cloud-Database-Startup Galaxy, eine Cloud-Plattform, speziell um Meteor Anwendungen zu veröffentlichen und zu betreiben, sowie Kadira, ein Performance-Monitoring-Dienst für Meteor-Anwendungen. Im Jahr 2016 hatte Meteor sein Umsatzziel durch Einnahmen aus dem Galaxy-Hosting-Angebot um 30 Prozent übertroffen.

Seit 2016 entwickelt MDG ein weiteres Framework, namens Apollo. Es bietet einen auf GraphQL basierenden Backend-Layer, welcher es ermöglicht, Publish-Subscribe-Muster zu ersetzen.

Im Jahr 2019 wurde Meteor, mitsamt der dazugehörigen Dienstleistungen, durch die Firma Tiny Capital aufgekauft und in Meteor Software umbenannt.

## Distributed Data Protocol (DDP)

Das Distributed Data Protocol (abk. DDP) ist ein Client-Server-Protokoll. Es ermöglicht die automatische Synchronisation von Daten via WebSocket und setzt dies über Publish-Subscribe-Entwurfsmuster um. Es wurde speziell für die Nutzung im Meteor-JavaScript-Framework entwickelt. Die Spezifikationen sind öffentlich auf GitHub einsehbar.

