lagompb-core

lagom-pb - Scala shared code for lagom development in lagom using protobuf.

License

License

GroupId

GroupId

io.superflat
ArtifactId

ArtifactId

lagompb-core_2.13
Last Version

Last Version

1.0.4
Release Date

Release Date

Type

Type

jar
Description

Description

lagompb-core
lagom-pb - Scala shared code for lagom development in lagom using protobuf.
Project URL

Project URL

https://github.com/super-flat/lagom-pb
Project Organization

Project Organization

Super Flat
Source Code Management

Source Code Management

https://github.com/super-flat/lagom-pb

Download lagompb-core_2.13

How to add to project

<!-- https://jarcasting.com/artifacts/io.superflat/lagompb-core_2.13/ -->
<dependency>
    <groupId>io.superflat</groupId>
    <artifactId>lagompb-core_2.13</artifactId>
    <version>1.0.4</version>
</dependency>
// https://jarcasting.com/artifacts/io.superflat/lagompb-core_2.13/
implementation 'io.superflat:lagompb-core_2.13:1.0.4'
// https://jarcasting.com/artifacts/io.superflat/lagompb-core_2.13/
implementation ("io.superflat:lagompb-core_2.13:1.0.4")
'io.superflat:lagompb-core_2.13:jar:1.0.4'
<dependency org="io.superflat" name="lagompb-core_2.13" rev="1.0.4">
  <artifact name="lagompb-core_2.13" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.superflat', module='lagompb-core_2.13', version='1.0.4')
)
libraryDependencies += "io.superflat" % "lagompb-core_2.13" % "1.0.4"
[io.superflat/lagompb-core_2.13 "1.0.4"]

Dependencies

compile (42)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.13.5
com.softwaremill.macwire : macros_2.13 jar 2.3.7
com.lightbend.lagom : lagom-scaladsl-akka-discovery-service-locator_2.13 jar 1.6.5
com.lightbend.akka.discovery : akka-discovery-kubernetes-api_2.13 jar 1.0.10
org.postgresql : postgresql jar 42.2.19
org.typelevel : cats-core_2.13 jar 2.5.0
com.lightbend.akka.management : akka-management_2.13 jar 1.0.10
com.lightbend.akka.management : akka-management-cluster-bootstrap_2.13 jar 1.0.10
com.lightbend.akka.management : akka-management-cluster-http_2.13 jar 1.0.10
com.h2database : h2 jar 1.4.200
com.thesamet.scalapb : scalapb-json4s_2.13 jar 0.11.0
org.reflections : reflections jar 0.9.12
com.lightbend.akka : akka-projection-core_2.13 jar 1.1.0
com.lightbend.akka : akka-projection-slick_2.13 jar 1.1.0
com.lightbend.akka : akka-projection-kafka_2.13 jar 1.1.0
com.lightbend.akka : akka-projection-eventsourced_2.13 jar 1.1.0
com.typesafe.akka : akka-http2-support_2.13 jar 10.1.14
com.typesafe.akka : akka-stream_2.13 jar 2.6.14
com.typesafe.akka : akka-cluster-sharding_2.13 jar 2.6.14
com.typesafe.akka : akka-discovery_2.13 jar 2.6.14
com.typesafe.akka : akka-cluster-typed_2.13 jar 2.6.14
com.thesamet.scalapb : scalapb-runtime_2.13 jar 0.11.0-M7
com.thesamet.scalapb : scalapb-validate-core_2.13 jar 0.3.0
com.lightbend.akka.grpc : akka-grpc-runtime_2.13 jar 1.0.3
com.lightbend.play : play-grpc-runtime_2.13 jar 0.9.1
org.scala-lang : scala-reflect jar 2.13.5
com.lightbend.lagom : lagom-scaladsl-api_2.13 jar 1.6.5
com.lightbend.lagom : lagom-scaladsl-server_2.13 jar 1.6.5
com.typesafe.play : filters-helpers_2.13 jar 2.8.8
com.lightbend.lagom : lagom-scaladsl-cluster_2.13 jar 1.6.5
com.lightbend.lagom : lagom-scaladsl-persistence-jdbc_2.13 jar 1.6.5
com.lightbend.lagom : lagom-scaladsl-persistence-cassandra_2.13 jar 1.6.5
com.lightbend.lagom : lagom-scaladsl-kafka-broker_2.13 jar 1.6.5
org.scalatest : scalatest_2.13 jar 3.2.7
org.scalamock : scalamock_2.13 jar 5.1.0
com.typesafe.akka : akka-multi-node-testkit_2.13 jar 2.6.14
com.typesafe.akka : akka-testkit_2.13 jar 2.6.14
com.typesafe.akka : akka-stream-testkit_2.13 jar 2.6.14
com.typesafe.akka : akka-actor-testkit-typed_2.13 jar 2.6.14
com.lightbend.lagom : lagom-logback_2.13 jar 1.6.5
com.lightbend.lagom : lagom-scaladsl-dev-mode_2.13 jar 1.6.5
com.typesafe.play : play-akka-http-server_2.13 jar 2.8.8

provided (1)

Group / Artifact Type Version
com.github.ghik : silencer-lib_2.13.5 jar 1.7.3

test (3)

Group / Artifact Type Version
com.lightbend.lagom : lagom-scaladsl-testkit_2.13 jar 1.6.5
com.dimafeng : testcontainers-scala-scalatest_2.13 jar 0.39.3
com.dimafeng : testcontainers-scala-postgresql_2.13 jar 0.39.3

Project Modules

There are no modules declared in this project.

lagom-pb = lagom + protocol buffer

Build Status Codacy Badge Codacy Badge License Maven Central Snapshot Artifacts Join the chat at https://gitter.im/super-flat/lagom-pb

Scala Developer velocity in lagom development using protocol buffer.

This library helps write lagom microservices easily by making use of protocol buffer messages to define the es/cqrs core components like api requests/responses, grpc services, events, commands and state.

Features

  • Implementation of an HTTP/Json based microservice using REST interfaces by defining api requests and responses as protobuf messages.

  • Implementation of a gRPC based microservice using protocol buffer messages. More info: gRPC.

  • ReadSide in-built battery via (Akka Projection).

  • Easy definition of aggregate root, events and command handlers.

  • Pure testable functions for events and commands handlers.

  • Easy definition of api service descriptors.

  • Easy implementation of api service either with message broker api or without.

  • Metadata adds some revision number that can help easily implement optimistic lock.

  • At every event handled a snapshot of the aggregate state with the metadata are made available for the readSide.

  • All events, snapshots and readSide offsets are persisted to Postgres SQL.

  • Encryption trait to enable events and snapshots encryption.

Documentation

Documentation is available at lagom-pb wiki at the moment.

Sample Project

There is a demo application built on top the library that can be found here Sample

License

This software is licensed under the Apache 2 license, quoted below.

Copyright © 2020 superflat

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

[http://www.apache.org/licenses/LICENSE-2.0] Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an " AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

io.superflat

Super Flat

open source tools

Versions

Version
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.6-alpha.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0