Overview

The Akka Persistence Spanner plugin allows for using Google Spanner as a backend for Akka Persistence.

The current version does not support PersistentQuery but future ones will.

It interacts with Google Spanner asynchronously via Akka gRPC.

Warning

The project is currently under development and there are no guarantees for binary compatibility and the schema may change.

Project Info

Project Info: Akka Persistence Spanner
Artifact
com.lightbend.akka
akka-persistence-spanner
1.0.0-RC5
JDK versions
OpenJDK 11
Scala versions2.13.1, 2.12.11
JPMS module nameakka.persistence.spanner
License
Readiness level
Since 0.1, 2020-04-15
Home pagehttps://doc.akka.io/docs/akka-persistence-spanner/current
Forums
Release notesGithub releases
IssuesGithub issues
Sourceshttps://github.com/akka/akka-persistence-spanner

Dependencies

Maven
<properties>
  <scala.binary.version>2.12</scala.binary.version>
</properties>
<dependency>
  <groupId>com.lightbend.akka</groupId>
  <artifactId>akka-persistence-spanner_${scala.binary.version}</artifactId>
  <version>1.0.0-RC5</version>
</dependency>
sbt
libraryDependencies += "com.lightbend.akka" %% "akka-persistence-spanner" % "1.0.0-RC5"
Gradle
versions += [
  ScalaBinary: "2.12"
]
dependencies {
  compile group: 'com.lightbend.akka', name: "akka-persistence-spanner_${versions.ScalaBinary}", version: '1.0.0-RC5'
}

This plugin depends on Akka 2.6.x and note that it is important that all akka-* dependencies are in the same version, so it is recommended to depend on them explicitly to avoid problems with transient dependencies causing an unlucky mix of versions.

Direct dependencies
OrganizationArtifactVersion
com.google.authgoogle-auth-library-oauth2-http0.20.0
com.lightbend.akka.grpcakka-grpc-runtime_2.121.0.0
com.thesamet.scalapbscalapb-runtime_2.120.10.4
com.typesafe.akkaakka-discovery_2.122.6.9
com.typesafe.akkaakka-persistence-query_2.122.6.9
com.typesafe.akkaakka-persistence-typed_2.122.6.9
io.grpcgrpc-auth1.30.2
io.grpcgrpc-stub1.30.0
org.scala-langscala-library2.12.11
Dependency tree
com.google.auth    google-auth-library-oauth2-http    0.20.0
    com.google.auth    google-auth-library-credentials    0.20.0
    com.google.auto.value    auto-value-annotations    1.7
    com.google.code.findbugs    jsr305    3.0.2
    com.google.guava    guava    28.2-android
        com.google.code.findbugs    jsr305    3.0.2
        com.google.errorprone    error_prone_annotations    2.3.4
        com.google.guava    failureaccess    1.0.1
        com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
        com.google.j2objc    j2objc-annotations    1.3
        org.checkerframework    checker-compat-qual    2.5.5
    com.google.http-client    google-http-client-jackson2    1.34.0
        com.fasterxml.jackson.core    jackson-core    2.10.5
        com.google.http-client    google-http-client    1.34.0
            com.google.code.findbugs    jsr305    3.0.2
            com.google.guava    guava    28.2-android
                com.google.code.findbugs    jsr305    3.0.2
                com.google.errorprone    error_prone_annotations    2.3.4
                com.google.guava    failureaccess    1.0.1
                com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
                com.google.j2objc    j2objc-annotations    1.3
                org.checkerframework    checker-compat-qual    2.5.5
            com.google.j2objc    j2objc-annotations    1.3
            io.opencensus    opencensus-api    0.24.0
                io.grpc    grpc-context    1.30.2
            io.opencensus    opencensus-contrib-http-util    0.24.0
                com.google.guava    guava    28.2-android
                    com.google.code.findbugs    jsr305    3.0.2
                    com.google.errorprone    error_prone_annotations    2.3.4
                    com.google.guava    failureaccess    1.0.1
                    com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
                    com.google.j2objc    j2objc-annotations    1.3
                    org.checkerframework    checker-compat-qual    2.5.5
                io.opencensus    opencensus-api    0.24.0
                    io.grpc    grpc-context    1.30.2
            org.apache.httpcomponents    httpclient    4.5.10
                commons-codec    commons-codec    1.11
                commons-logging    commons-logging    1.2
                org.apache.httpcomponents    httpcore    4.4.12
            org.apache.httpcomponents    httpcore    4.4.12
    com.google.http-client    google-http-client    1.34.0
        com.google.code.findbugs    jsr305    3.0.2
        com.google.guava    guava    28.2-android
            com.google.code.findbugs    jsr305    3.0.2
            com.google.errorprone    error_prone_annotations    2.3.4
            com.google.guava    failureaccess    1.0.1
            com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
            com.google.j2objc    j2objc-annotations    1.3
            org.checkerframework    checker-compat-qual    2.5.5
        com.google.j2objc    j2objc-annotations    1.3
        io.opencensus    opencensus-api    0.24.0
            io.grpc    grpc-context    1.30.2
        io.opencensus    opencensus-contrib-http-util    0.24.0
            com.google.guava    guava    28.2-android
                com.google.code.findbugs    jsr305    3.0.2
                com.google.errorprone    error_prone_annotations    2.3.4
                com.google.guava    failureaccess    1.0.1
                com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
                com.google.j2objc    j2objc-annotations    1.3
                org.checkerframework    checker-compat-qual    2.5.5
            io.opencensus    opencensus-api    0.24.0
                io.grpc    grpc-context    1.30.2
        org.apache.httpcomponents    httpclient    4.5.10
            commons-codec    commons-codec    1.11
            commons-logging    commons-logging    1.2
            org.apache.httpcomponents    httpcore    4.4.12
        org.apache.httpcomponents    httpcore    4.4.12
com.lightbend.akka.grpc    akka-grpc-runtime_2.12    1.0.0
    com.typesafe.akka    akka-http-core_2.12    10.1.12
        com.typesafe.akka    akka-parsing_2.12    10.1.12
    com.typesafe.akka    akka-http2-support_2.12    10.1.12
        com.twitter    hpack    1.0.2
        com.typesafe.akka    akka-http-core_2.12    10.1.12
            com.typesafe.akka    akka-parsing_2.12    10.1.12
        org.eclipse.jetty.alpn    alpn-api    1.1.3.v20160715
    com.typesafe.akka    akka-http_2.12    10.1.12
        com.typesafe.akka    akka-http-core_2.12    10.1.12
            com.typesafe.akka    akka-parsing_2.12    10.1.12
    com.typesafe.akka    akka-stream_2.12    2.6.9
        com.typesafe.akka    akka-actor_2.12    2.6.9
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
        com.typesafe.akka    akka-protobuf-v3_2.12    2.6.9
        com.typesafe    ssl-config-core_2.12    0.4.2
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-parser-combinators_2.12    1.1.2
        org.reactivestreams    reactive-streams    1.0.3
    io.grpc    grpc-core    1.30.0
        com.google.android    annotations    4.1.1.4
        com.google.code.findbugs    jsr305    3.0.2
        com.google.code.gson    gson    2.8.6
        com.google.errorprone    error_prone_annotations    2.3.4
        com.google.guava    guava    28.2-android
            com.google.code.findbugs    jsr305    3.0.2
            com.google.errorprone    error_prone_annotations    2.3.4
            com.google.guava    failureaccess    1.0.1
            com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
            com.google.j2objc    j2objc-annotations    1.3
            org.checkerframework    checker-compat-qual    2.5.5
        io.grpc    grpc-api    1.30.2
            com.google.code.findbugs    jsr305    3.0.2
            com.google.errorprone    error_prone_annotations    2.3.4
            com.google.guava    guava    28.2-android
                com.google.code.findbugs    jsr305    3.0.2
                com.google.errorprone    error_prone_annotations    2.3.4
                com.google.guava    failureaccess    1.0.1
                com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
                com.google.j2objc    j2objc-annotations    1.3
                org.checkerframework    checker-compat-qual    2.5.5
            io.grpc    grpc-context    1.30.2
            org.codehaus.mojo    animal-sniffer-annotations    1.18
        io.perfmark    perfmark-api    0.19.0
            com.google.code.findbugs    jsr305    3.0.2
        org.codehaus.mojo    animal-sniffer-annotations    1.18
    io.grpc    grpc-netty-shaded    1.30.0
        io.grpc    grpc-core    1.30.0
            com.google.android    annotations    4.1.1.4
            com.google.code.findbugs    jsr305    3.0.2
            com.google.code.gson    gson    2.8.6
            com.google.errorprone    error_prone_annotations    2.3.4
            com.google.guava    guava    28.2-android
                com.google.code.findbugs    jsr305    3.0.2
                com.google.errorprone    error_prone_annotations    2.3.4
                com.google.guava    failureaccess    1.0.1
                com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
                com.google.j2objc    j2objc-annotations    1.3
                org.checkerframework    checker-compat-qual    2.5.5
            io.grpc    grpc-api    1.30.2
                com.google.code.findbugs    jsr305    3.0.2
                com.google.errorprone    error_prone_annotations    2.3.4
                com.google.guava    guava    28.2-android
                    com.google.code.findbugs    jsr305    3.0.2
                    com.google.errorprone    error_prone_annotations    2.3.4
                    com.google.guava    failureaccess    1.0.1
                    com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
                    com.google.j2objc    j2objc-annotations    1.3
                    org.checkerframework    checker-compat-qual    2.5.5
                io.grpc    grpc-context    1.30.2
                org.codehaus.mojo    animal-sniffer-annotations    1.18
            io.perfmark    perfmark-api    0.19.0
                com.google.code.findbugs    jsr305    3.0.2
            org.codehaus.mojo    animal-sniffer-annotations    1.18
com.thesamet.scalapb    scalapb-runtime_2.12    0.10.4
    com.google.protobuf    protobuf-java    3.11.4
    com.lihaoyi    fastparse_2.12    2.3.0
        com.lihaoyi    geny_2.12    0.6.0
        com.lihaoyi    sourcecode_2.12    0.2.1
    com.thesamet.scalapb    lenses_2.12    0.10.4
        org.scala-lang.modules    scala-collection-compat_2.12    2.1.6
    org.scala-lang.modules    scala-collection-compat_2.12    2.1.6
com.typesafe.akka    akka-discovery_2.12    2.6.9
    com.typesafe.akka    akka-actor_2.12    2.6.9
        com.typesafe    config    1.4.0
        org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
com.typesafe.akka    akka-persistence-query_2.12    2.6.9
    com.typesafe.akka    akka-persistence_2.12    2.6.9
        com.typesafe.akka    akka-actor_2.12    2.6.9
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
        com.typesafe.akka    akka-stream_2.12    2.6.9
            com.typesafe.akka    akka-actor_2.12    2.6.9
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
            com.typesafe.akka    akka-protobuf-v3_2.12    2.6.9
            com.typesafe    ssl-config-core_2.12    0.4.2
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-parser-combinators_2.12    1.1.2
            org.reactivestreams    reactive-streams    1.0.3
    com.typesafe.akka    akka-stream_2.12    2.6.9
        com.typesafe.akka    akka-actor_2.12    2.6.9
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
        com.typesafe.akka    akka-protobuf-v3_2.12    2.6.9
        com.typesafe    ssl-config-core_2.12    0.4.2
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-parser-combinators_2.12    1.1.2
        org.reactivestreams    reactive-streams    1.0.3
com.typesafe.akka    akka-persistence-typed_2.12    2.6.9
    com.typesafe.akka    akka-actor-typed_2.12    2.6.9
        com.typesafe.akka    akka-actor_2.12    2.6.9
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
        com.typesafe.akka    akka-slf4j_2.12    2.6.9
            com.typesafe.akka    akka-actor_2.12    2.6.9
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
            org.slf4j    slf4j-api    1.7.30
        org.slf4j    slf4j-api    1.7.30
    com.typesafe.akka    akka-persistence_2.12    2.6.9
        com.typesafe.akka    akka-actor_2.12    2.6.9
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
        com.typesafe.akka    akka-stream_2.12    2.6.9
            com.typesafe.akka    akka-actor_2.12    2.6.9
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
            com.typesafe.akka    akka-protobuf-v3_2.12    2.6.9
            com.typesafe    ssl-config-core_2.12    0.4.2
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-parser-combinators_2.12    1.1.2
            org.reactivestreams    reactive-streams    1.0.3
    com.typesafe.akka    akka-remote_2.12    2.6.9
        com.typesafe.akka    akka-actor_2.12    2.6.9
            com.typesafe    config    1.4.0
            org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
        com.typesafe.akka    akka-pki_2.12    2.6.9
            com.hierynomus    asn-one    0.4.0
            com.typesafe.akka    akka-actor_2.12    2.6.9
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
            org.slf4j    slf4j-api    1.7.30
        com.typesafe.akka    akka-stream_2.12    2.6.9
            com.typesafe.akka    akka-actor_2.12    2.6.9
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
            com.typesafe.akka    akka-protobuf-v3_2.12    2.6.9
            com.typesafe    ssl-config-core_2.12    0.4.2
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-parser-combinators_2.12    1.1.2
            org.reactivestreams    reactive-streams    1.0.3
        org.agrona    agrona    1.4.1
    com.typesafe.akka    akka-stream-typed_2.12    2.6.9
        com.typesafe.akka    akka-actor-typed_2.12    2.6.9
            com.typesafe.akka    akka-actor_2.12    2.6.9
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
            com.typesafe.akka    akka-slf4j_2.12    2.6.9
                com.typesafe.akka    akka-actor_2.12    2.6.9
                    com.typesafe    config    1.4.0
                    org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
                org.slf4j    slf4j-api    1.7.30
            org.slf4j    slf4j-api    1.7.30
        com.typesafe.akka    akka-stream_2.12    2.6.9
            com.typesafe.akka    akka-actor_2.12    2.6.9
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-java8-compat_2.12    0.8.0
            com.typesafe.akka    akka-protobuf-v3_2.12    2.6.9
            com.typesafe    ssl-config-core_2.12    0.4.2
                com.typesafe    config    1.4.0
                org.scala-lang.modules    scala-parser-combinators_2.12    1.1.2
            org.reactivestreams    reactive-streams    1.0.3
io.grpc    grpc-auth    1.30.2
    com.google.auth    google-auth-library-credentials    0.20.0
    com.google.code.findbugs    jsr305    3.0.2
    com.google.errorprone    error_prone_annotations    2.3.4
    com.google.guava    guava    28.2-android
        com.google.code.findbugs    jsr305    3.0.2
        com.google.errorprone    error_prone_annotations    2.3.4
        com.google.guava    failureaccess    1.0.1
        com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
        com.google.j2objc    j2objc-annotations    1.3
        org.checkerframework    checker-compat-qual    2.5.5
    io.grpc    grpc-api    1.30.2
        com.google.code.findbugs    jsr305    3.0.2
        com.google.errorprone    error_prone_annotations    2.3.4
        com.google.guava    guava    28.2-android
            com.google.code.findbugs    jsr305    3.0.2
            com.google.errorprone    error_prone_annotations    2.3.4
            com.google.guava    failureaccess    1.0.1
            com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
            com.google.j2objc    j2objc-annotations    1.3
            org.checkerframework    checker-compat-qual    2.5.5
        io.grpc    grpc-context    1.30.2
        org.codehaus.mojo    animal-sniffer-annotations    1.18
    org.codehaus.mojo    animal-sniffer-annotations    1.18
io.grpc    grpc-stub    1.30.0
    com.google.code.findbugs    jsr305    3.0.2
    com.google.errorprone    error_prone_annotations    2.3.4
    com.google.guava    guava    28.2-android
        com.google.code.findbugs    jsr305    3.0.2
        com.google.errorprone    error_prone_annotations    2.3.4
        com.google.guava    failureaccess    1.0.1
        com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
        com.google.j2objc    j2objc-annotations    1.3
        org.checkerframework    checker-compat-qual    2.5.5
    io.grpc    grpc-api    1.30.2
        com.google.code.findbugs    jsr305    3.0.2
        com.google.errorprone    error_prone_annotations    2.3.4
        com.google.guava    guava    28.2-android
            com.google.code.findbugs    jsr305    3.0.2
            com.google.errorprone    error_prone_annotations    2.3.4
            com.google.guava    failureaccess    1.0.1
            com.google.guava    listenablefuture    9999.0-empty-to-avoid-conflict-with-guava
            com.google.j2objc    j2objc-annotations    1.3
            org.checkerframework    checker-compat-qual    2.5.5
        io.grpc    grpc-context    1.30.2
        org.codehaus.mojo    animal-sniffer-annotations    1.18
    org.codehaus.mojo    animal-sniffer-annotations    1.18
org.scala-lang    scala-library    2.12.11
Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.