diff --git a/README.md b/README.md index 1b9cabd69..1abffa147 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Akka Projections -The Akka family of projects is managed by teams at [Lightbend](https://lightbend.com/) with help from the community. +The Akka family of projects is managed by teams at [Akka](https://akka.io/) with help from the community. Akka Projections provides an abstraction for consuming a stream of `Envelope` (where `Envelope` contains a payload and a trackable offset). This streams can originate from persisted events, Kafka topics, or other Alpakka connectors. @@ -9,6 +9,6 @@ Akka Projections also provides tools to track, restart and distribute these proj License ------- -Akka is licensed under the Business Source License 1.1, please see the [Akka License FAQ](https://www.lightbend.com/akka/license-faq). +Akka is licensed under the Business Source License 1.1, please see the [Akka License FAQ](https://akka.io/bsl-license-faq). -Tests and documentation are under a separate license, see the LICENSE file in each documentation and test root directory for details. \ No newline at end of file +Tests and documentation are under a separate license, see the LICENSE file in each documentation and test root directory for details. diff --git a/build.sbt b/build.sbt index 9a50c3647..52cd2827d 100644 --- a/build.sbt +++ b/build.sbt @@ -211,15 +211,15 @@ lazy val commonParadoxProperties = Def.settings( Compile / paradoxProperties ++= Map( // Akka "extref.akka.base_url" -> s"https://doc.akka.io/libraries/akka-core/${Dependencies.Versions.AkkaVersionInDocs}/%s", - "scaladoc.akka.base_url" -> s"https://doc.akka.io/api/akka/${Dependencies.Versions.AkkaVersionInDocs}/", - "javadoc.akka.base_url" -> s"https://doc.akka.io/japi/akka/${Dependencies.Versions.AkkaVersionInDocs}/", + "scaladoc.akka.base_url" -> s"https://doc.akka.io/api/akka-core/${Dependencies.Versions.AkkaVersionInDocs}/", + "javadoc.akka.base_url" -> s"https://doc.akka.io/japi/akka-core/${Dependencies.Versions.AkkaVersionInDocs}/", "javadoc.akka.link_style" -> "direct", // Alpakka - "extref.alpakka.base_url" -> s"https://doc.akka.io/docs/alpakka/${Dependencies.Versions.AlpakkaVersionInDocs}/%s", + "extref.alpakka.base_url" -> s"https://doc.akka.io/libraries/alpakka/${Dependencies.Versions.AlpakkaVersionInDocs}/%s", "scaladoc.akka.stream.alpakka.base_url" -> s"https://doc.akka.io/api/alpakka/${Dependencies.Versions.AlpakkaVersionInDocs}/", "javadoc.akka.stream.alpakka.base_url" -> "", // Alpakka Kafka - "extref.alpakka-kafka.base_url" -> s"https://doc.akka.io/docs/alpakka-kafka/${Dependencies.Versions.AlpakkaKafkaVersionInDocs}/%s", + "extref.alpakka-kafka.base_url" -> s"https://doc.akka.io/libraries/alpakka-kafka/${Dependencies.Versions.AlpakkaKafkaVersionInDocs}/%s", "scaladoc.akka.kafka.base_url" -> s"https://doc.akka.io/api/alpakka-kafka/${Dependencies.Versions.AlpakkaKafkaVersionInDocs}/", "javadoc.akka.kafka.base_url" -> "", // Akka gRPC @@ -231,7 +231,7 @@ lazy val commonParadoxProperties = Def.settings( // Akka Persistence DynamoDB plugin "extref.akka-persistence-dynamodb.base_url" -> s"https://doc.akka.io/libraries/akka-persistence-dynamodb/${Dependencies.Versions.AkkaPersistenceDynamodbVersionInDocs}/%s", // Akka Guide - "extref.akka-guide.base_url" -> "https://doc.akka.io/guide/microservices-tutorial/", + "extref.akka-guide.base_url" -> "https://doc.akka.io/libraries/guide/microservices-tutorial/", // Java "javadoc.base_url" -> "https://docs.oracle.com/javase/8/docs/api/", // Scala @@ -239,7 +239,7 @@ lazy val commonParadoxProperties = Def.settings( "scaladoc.akka.projection.base_url" -> s"/${(Preprocess / siteSubdirName).value}/", "javadoc.akka.projection.base_url" -> "", // no Javadoc is published // Misc - "extref.platform-guide.base_url" -> "https://doc.akka.io/guide/%s")) + "extref.platform-guide.base_url" -> "https://doc.akka.io/libraries/guide/%s")) lazy val docs = project .enablePlugins(AkkaParadoxPlugin, ParadoxSitePlugin, SitePreviewPlugin, PreprocessPlugin, PublishRsyncPlugin) diff --git a/docs/src/main/paradox/cassandra.md b/docs/src/main/paradox/cassandra.md index 6e6a26598..16e969011 100644 --- a/docs/src/main/paradox/cassandra.md +++ b/docs/src/main/paradox/cassandra.md @@ -316,7 +316,7 @@ akka.projection.cassandra { } ``` -or share the same Cassandra session as [Alpakka Cassandra](https://doc.akka.io/docs/alpakka/2.0/cassandra.html): +or share the same Cassandra session as @extref:[Alpakka Cassandra](alpakka:cassandra.html): ``` akka.projection.cassandra { @@ -340,6 +340,6 @@ datastax-java-driver { ``` Alternatively, Akka Discovery can be used for finding the Cassandra server contact points as described -in the [Alpakka Cassandra documentation](https://doc.akka.io/docs/alpakka/2.0/cassandra.html#using-akka-discovery). +in the @extref:[Alpakka Cassandra documentation](alpakka:cassandra.html#using-akka-discovery). Without any configuration it will use `localhost:9042` as default. diff --git a/docs/src/main/paradox/durable-state.md b/docs/src/main/paradox/durable-state.md index 41fa4f026..3a9791f16 100644 --- a/docs/src/main/paradox/durable-state.md +++ b/docs/src/main/paradox/durable-state.md @@ -1,6 +1,6 @@ # Changes from Durable State -A typical source for Projections is the change stored with @apidoc[DurableStateBehavior$] in [Akka Persistence](https://doc.akka.io/libraries/akka-core/current/typed/durable-state/persistence.html). Durable state changes can be consumed in a Projection with +A typical source for Projections is the change stored with @apidoc[DurableStateBehavior$] in @extref:[Akka Persistence](akka:typed/durable-state/persistence.html). Durable state changes can be consumed in a Projection with `changesByTag`, `changesBySlices` or `eventsBySlices` queries. Note that NOT all changes that occur are guaranteed to be emitted, calls to these methods only guarantee that eventually, the most recent diff --git a/docs/src/main/paradox/kafka.md b/docs/src/main/paradox/kafka.md index 8a069561c..a3889b48a 100644 --- a/docs/src/main/paradox/kafka.md +++ b/docs/src/main/paradox/kafka.md @@ -1,6 +1,6 @@ # Messages from and to Kafka -A typical source for Projections is messages from Kafka. Akka Projections supports integration with Kafka using [Alpakka Kafka](https://doc.akka.io/docs/alpakka-kafka/current/). +A typical source for Projections is messages from Kafka. Akka Projections supports integration with Kafka using @extref:[Alpakka Kafka](alpakka-kafka:). The @apidoc[KafkaSourceProvider$] uses consumer group assignments from Kafka and can resume from offsets stored in a database. @@ -63,7 +63,7 @@ Scala Java : @@snip [KafkaDocExample.java](/examples/src/test/java/jdocs/kafka/KafkaDocExample.java) { #imports #sourceProvider } -Please consult the [Alpakka Kafka documentation](https://doc.akka.io/docs/alpakka-kafka/current/consumer.html) for +Please consult the @extref:[Alpakka Kafka documentation](alpakka-kafka:consumer.html) for specifics around the `ConsumerSettings`. The `KafkaSourceProvider` is using `Consumer.plainPartitionedManualOffsetSource`. The `Projection` can then be defined as: @@ -94,13 +94,13 @@ Java The `KafkaSourceProvider` described above stores the Kafka offsets in a database. The main advantage of storing the offsets in a database is that exactly-once processing semantics can be achieved if the target database operations of the projection can be run in the same transaction as the storage of the offset. -However, there is a caveat when chosing for `exactly-once`. When the Kafka Consumer Group rebalance occurs it's possible that some messages from a revoked partitions are still in-flight and have not yet been committed to the offset store. Projections will attempt to filter out such messages, but it's not possible to guarantee it all the time. +However, there is a caveat when choosing for `exactly-once`. When the Kafka Consumer Group rebalance occurs it's possible that some messages from a revoked partitions are still in-flight and have not yet been committed to the offset store. Projections will attempt to filter out such messages, but it's not possible to guarantee it all the time. To mitigate that risk, you can increase the value of `akka.projection.kafka.read-offset-delay` (defaults to 500ms). This delay adds a buffer of time between when the Kafka Source Provider starts up, or when it's assigned a new partition, to retrieve the map of partitions to offsets to give any projections running in parallel a chance to drain in-flight messages. ## Committing offset in Kafka -When using the approach of committing the offsets back to Kafka the [Alpakka Kafka comittableSource](https://doc.akka.io/docs/alpakka-kafka/current/consumer.html) can be used, and Akka Projections is not needed for that usage. +When using the approach of committing the offsets back to Kafka the @extref:[Alpakka Kafka comittableSource](alpakka-kafka:consumer.html) can be used, and Akka Projections is not needed for that usage. ## Sending to Kafka @@ -124,7 +124,7 @@ Scala Java : @@snip [KafkaDocExample.java](/examples/src/test/java/jdocs/kafka/KafkaDocExample.java) { #imports-producer #sendProducer } -Please consult the [Alpakka Kafka documentation](https://doc.akka.io/docs/alpakka-kafka/current/producer.html) for +Please consult the @extrefL[Alpakka Kafka documentation](alpakka-kafka:producer.html) for specifics around the `ProducerSettings` and `SendProducer`. The `Projection` is defined as: diff --git a/docs/src/main/paradox/overview.md b/docs/src/main/paradox/overview.md index 784d3d731..18c07ceb6 100644 --- a/docs/src/main/paradox/overview.md +++ b/docs/src/main/paradox/overview.md @@ -90,4 +90,4 @@ Actor API. Please feel free to contribute to Akka and Akka Projections by reporting issues you identify, or by suggesting changes to the code. Please refer to our [contributing instructions](https://github.com/akka/akka/blob/main/CONTRIBUTING.md) to learn how it can be done. -We want Akka to strive in a welcoming and open atmosphere and expect all contributors to respect our [code of conduct](https://www.lightbend.com/conduct). +We want Akka to strive in a welcoming and open atmosphere and expect all contributors to respect our [code of conduct](https://akka.io/conduct).