Skip to content

lightbend/kalix-jvm-sdk

Repository files navigation

Kalix JVM SDKs

The Kalix JVM SDKs are used to develop Kalix services using Java or Scala. Two different development approaches are available as listed below:

  • Java SDK (code-first)
  • Java Protobuf SDK (protocol-first)
  • Scala Protobuf SDK (protocol-first)

If you’re just looking to get started, we advise you to start with the Java SDK which is the only one supporting a code-first development approach at present. For more information see the documentation for implementing Kalix services in Java.

Java SDK

  • User-facing packages
    • kalix-spring-boot-starter: The Java API to build services in Kalix with a code-first development approach using a Spring Boot Starter. See Java SDK.
    • kalix-spring-boot-starter-test: A library to implement integration tests for services, based on TestContainers. Also contains library parts of unit TestKit.
  • Samples: Small example services to illustrate Kalix features for this SDK are prefixed with java-spring-. The code also provides snippets for the documentation.
  • Developer tooling
    • maven-java Maven tooling
      • kalix-spring-boot-archetype Maven archetype to create a project.

Java/Scala Protobuf SDK

  • User-facing packages

    • kalix-java-sdk-protobuf and kalix-scala-sdk-protobuf: The Java/Scala Protobuf API to build services in Kalix. See Java/Scala Protobuf SDK.

    • kalix-java-sdk-testkit and kalix-scala-sdk-testkit: A library to implement integration tests for services, based on TestContainers. Also contains library parts of unit TestKit.

  • Samples: Small example services to illustrate Kalix features are prefixed with java-protobuf- or scala-protobuf-. The code provides snippets for the documentation.

  • Developer tooling

    • codegen/core, codegen/java-gen, codegen/scala-gen Tooling to generate code from Protobuf with annotations.
    • maven-java Maven tooling
      • kalix-maven-plugin Maven plugin to trigger code generation.
      • kalix-maven-archetype-event-sourced-entity Maven archetype to create a project with an Event-sourced Entity.
      • kalix-maven-archetype-value-entity Maven archetype to create a project with a Value Entity.
    • sbt-plugin sbt plugin for code generation.
    • sbt new (gitter8) templates:

Common parts

  • docs The documentation feeding into Java SDK and Java/Scala Protobuf SDK.

  • tck The Technology Compatibility Kit which ensures the Java SDK adheres to the Kalix protocol.

License

The Kalix JVM SDKs are Open Source and available under the Apache 2 License.