Von Apache Pekko
Apache Pekko ist der Community-Fork von Akka, den die Apache Software Foundation geschaffen hat, als Akka 2022 seine Lizenzierung änderte. Pekko hält die Akka-2.6-API unter Apache-2.0-Lizenz; zukünftiges Akka ist proprietär.
Für Migrationszwecke gilt Pekko ≈ Akka 2.6 - alles im from-akka-jvm-Guide gilt. Diese Seite behandelt die Pekko-spezifischen Unterschiede.
Pekko vs. Akka - was sich unterscheidet
Abschnitt betitelt „Pekko vs. Akka - was sich unterscheidet“Pekko ist ein Drop-in-Ersatz für Akka 2.6 mit einer
nennenswerten Änderung: alle Paketnamen änderten sich von
akka.* zu org.apache.pekko.*.
// Akka:import akka.actor.Actorimport akka.cluster.sharding.ClusterSharding
// Pekko:import org.apache.pekko.actor.Actorimport org.apache.pekko.cluster.sharding.ClusterShardingAnsonsten ist die API identisch zu Akka 2.6.
Migration zu actor-ts
Abschnitt betitelt „Migration zu actor-ts“Behandle deine Pekko-Codebase genauso wie Akka 2.6 - siehe from-akka-jvm für das vollständige Mapping.
Derselbe Konzept-Spickzettel gilt:
| Pekko | actor-ts |
|---|---|
Actor | Actor<TMsg> |
ActorRef | ActorRef<T> |
Cluster | Cluster |
ClusterSharding | ClusterSharding |
PersistentActor | PersistentActor |
ClusterSingletonManager | ClusterSingletonManager |
Pekko-spezifische Überlegungen
Abschnitt betitelt „Pekko-spezifische Überlegungen“Lizenz-Kompatibilität
Abschnitt betitelt „Lizenz-Kompatibilität“Pekko ist Apache 2.0 - actor-ts ist ebenfalls permissiv lizenziert. Keine Lizenzkonflikte bei der Migration.
Pekko Streams → nicht in actor-ts
Abschnitt betitelt „Pekko Streams → nicht in actor-ts“Wie Akka Streams: nicht portiert. Nutze Promise-basierte Patterns oder eine separate Library.
Pekko HTTP → nutze das HTTP-Modul des Frameworks
Abschnitt betitelt „Pekko HTTP → nutze das HTTP-Modul des Frameworks“Das HTTP-Modul von actor-ts deckt die gängigen Pekko-HTTP-Use-Cases ab - Routing, Marshalling, Middleware. Weniger feature-vollständig (keine compile-time-typisierte Route-DSL wie bei Pekko HTTP), aber einfacher.
Pekko Persistence Query → PersistenceQuery
Abschnitt betitelt „Pekko Persistence Query → PersistenceQuery“actor-ts hat
PersistenceQuery mit
derselben konzeptionellen Form (Live- + Snapshot-Queries nach
PID oder Tag), aber als AsyncIterable statt Stream.
Migrations-Strategien
Abschnitt betitelt „Migrations-Strategien“Wie bei Akka:
- Nicht alles auf einmal umschreiben - lass actor-ts in einem neuen Service laufen, der das Pekko-System vorlagert.
- Einen Bounded Context nach dem anderen - migriere pro Domäne.
- Persistenz vorsichtig re-exportieren - Pekkos JSON-Jackson-Events lassen sich via EventAdapter in actor-ts einlesen.
Warum überhaupt von Pekko migrieren?
Abschnitt betitelt „Warum überhaupt von Pekko migrieren?“Wenn Pekko für dich funktioniert, migriere nicht - der Use-Case für actor-ts ist:
- Du willst einen TypeScript-First-Stack statt der JVM.
- Dein Deployment ist Container-First mit Sub-Sekunden-Startzeit als Anliegen.
- Du würdest die JVM lieber vermeiden aus operativen Gründen (Memory-Profil, GC-Tuning).
Wenn keiner dieser Punkte zutrifft, ist Pekko eine solide Wahl auf der JVM - bleib dabei.
Wohin als Nächstes
Abschnitt betitelt „Wohin als Nächstes“- from-akka-jvm - die Hauptreferenz (Pekko spiegelt Akka 2.6).
- Migration - Übersicht - Framework-übergreifender Vergleich.
- Quickstart - actor-ts Hello-World.