No description
Find a file
Patrik Nordwall 20b684f04f
New Persistence Query interfaces for bySlices queries (#30882)
* and addition of TimestampOffset
* ApiMayChange
* small mention in docs

eventsBySlices is intended to be a better way to retrieve all events for an entity type
than eventsByTag.

The usage of `eventsByTag` for Projections has the major drawback that the number of tags
must be decided up-front and can't easily be changed afterwards. Starting with too many
tags means much overhead since many projection instances would be running on each node
in a small Akka Cluster. Each projection instance polling the database periodically.
Starting with too few tags means that it can't be scaled later to more Akka nodes.

Instead of tags we can store a slice number by hashing the persistence id.
Like `math.abs(persistenceId.hashCode % numberOfSlices)`.

Then the Projection query can be a range query of the slices. For example if using 128
slices and running 4 Projection instances the slice ranges would be 0-31, 32-63, 64-95,
96-128. That can easily be split to more Projection instances when needed and still
reuse the offsets for the previous range distributions.
2021-11-15 17:31:23 +01:00
.github Scala 3: enable akka-cluster-metrics tests (#30891) 2021-11-15 17:29:37 +01:00
akka-actor/src/main updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
akka-actor-testkit-typed/src updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
akka-actor-tests/src/test Mark flaky BalancingSpec as pending, #30860 (#30861) 2021-11-05 11:05:15 +01:00
akka-actor-typed/src/main updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
akka-actor-typed-tests/src/test Remove fixme part about guards and pattern matching from StyleGuide (#30787) 2021-10-25 18:00:41 +02:00
akka-bench-jmh Build akka-bench-jmh with scala3 (#30682) 2021-09-16 09:22:32 +02:00
akka-cluster Fix StackOverflowError in multi-jvm tests, #30885 (#30886) 2021-11-15 13:47:08 +01:00
akka-cluster-metrics/src Scala 3: enable akka-cluster-metrics tests (#30891) 2021-11-15 17:29:37 +01:00
akka-cluster-sharding/src Fix StackOverflowError in multi-jvm tests, #30885 (#30886) 2021-11-15 13:47:08 +01:00
akka-cluster-sharding-typed/src Add entity passivation strategies (#30852) 2021-11-04 09:10:04 +01:00
akka-cluster-tools/src Fix StackOverflowError in multi-jvm tests, #30885 (#30886) 2021-11-15 13:47:08 +01:00
akka-cluster-typed/src review patience config (#30709) 2021-10-01 16:48:16 +02:00
akka-coordination/src compile akka-coordination with scala3 (#30386) 2021-07-19 17:09:48 +02:00
akka-discovery/src Parse service names with special characters in them #30672 2021-09-15 17:20:43 +02:00
akka-distributed-data/src Fix external links - fifth iteration (#30697) (#30755) 2021-10-07 10:46:54 +02:00
akka-docs/src New Persistence Query interfaces for bySlices queries (#30882) 2021-11-15 17:31:23 +01:00
akka-multi-node-testkit/src/main move aeron tests in multi-node (#30706) 2021-10-20 08:07:47 +02:00
akka-osgi/src Update copyright to 2021 2021-01-08 17:55:38 +01:00
akka-persistence/src Add slice utilities to Persistence (#30879) 2021-11-14 18:56:53 +01:00
akka-persistence-query/src New Persistence Query interfaces for bySlices queries (#30882) 2021-11-15 17:31:23 +01:00
akka-persistence-shared/src/test/scala/akka/persistence updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
akka-persistence-tck/src Delete CI-sensitive LevelDB perf spec 2021-05-03 14:04:31 +02:00
akka-persistence-testkit/src Fix Scala 2.12 compilation (#30888) 2021-11-15 13:13:14 +01:00
akka-persistence-typed/src Allow initial state to be null while using EventSourcedBehaviorTestKit (#30823) 2021-10-26 16:41:18 +02:00
akka-persistence-typed-tests/src/test Allow 'currentPersistenceIds' for ReadJournal (#30878) 2021-11-15 11:54:47 +01:00
akka-pki/src Update copyright to 2021 2021-01-08 17:55:38 +01:00
akka-protobuf/src/main/java/akka/protobuf Replace Charset.forName("UTF-8") on StandartCharsets.UTF_8 (#30113) 2021-03-19 11:15:50 +01:00
akka-remote/src updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
akka-remote-tests/src updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
akka-serialization-jackson/src Test customizing the Jackson object mapper (#30670) 2021-09-10 12:49:05 +02:00
akka-slf4j/src Update copyright to 2021 2021-01-08 17:55:38 +01:00
akka-stream/src/main Make StreamConverters.asOutputStream ignore empty arrays (#30818) 2021-10-25 17:40:10 +02:00
akka-stream-testkit/src Also dilate the initial delay when testing timeouts in akka-stream-testkit 2021-08-23 14:08:26 -04:00
akka-stream-tests/src/test updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
akka-stream-tests-tck/src/test Update copyright to 2021 2021-01-08 17:55:38 +01:00
akka-stream-typed/src Remove unused imports in tests (#30265) 2021-06-01 13:34:43 +02:00
akka-testkit/src review patience config (#30709) 2021-10-01 16:48:16 +02:00
kubernetes Try with less cpu requests and anti-affinity, #30874 (#30883) 2021-11-13 16:44:09 +01:00
plugins/serialversion-remover-plugin/src/main Extend GroupedWeightedWithin to accept maxWeight and maxNumber simultaneously #30020 2021-03-15 12:38:28 +01:00
project updated scala versions (#30870) 2021-11-12 17:30:49 +01:00
scripts 'master' to 'main' (#30714) 2021-09-25 09:39:36 +02:00
src/main/ls Update ls.implicit.ly sbt settings 2012-03-10 10:30:38 +13:00
.gitignore Run multi-node tests on fresh GKE clusters (#30570) 2021-08-27 17:40:51 +02:00
.jvmopts-ci Run multi-node tests on fresh GKE clusters (#30570) 2021-08-27 17:40:51 +02:00
.sbt-java-formatter.conf Allow opt out of code discipline (#28588) 2020-02-14 15:19:10 +01:00
.sbtopts Build Test Akka Cluster Metrics with sigar library. (#30453) 2021-08-04 14:18:30 +02:00
.scala-steward.conf Pin jackson-databind to 2.11 (#30185) 2021-04-13 14:14:49 +02:00
.scalafix.conf Use scalafix to update scala 2.13.3, silencer 1.7.0 (#29367) 2020-12-09 09:20:13 +01:00
.scalafmt.conf Operator docs: examples for asSource/FlowWithContext (#29822) 2020-11-25 12:21:16 +01:00
build.sbt Include Scala 3 in cross-build (#30392) 2021-10-25 08:18:22 +02:00
CODE_OF_CONDUCT.md Update to Lightbend Community Code of Conduct 2019-08-30 18:08:47 +09:30
CONTRIBUTING.md 'master' to 'main' (#30714) 2021-09-25 09:39:36 +02:00
COPYING.protobuf =all #13783 replace protobuf dependency by embedded version 2015-09-04 09:06:50 +02:00
LICENSE Include the full apache license text (#23992) 2017-11-14 16:47:33 +01:00
README.md 'master' to 'main' (#30714) 2021-09-25 09:39:36 +02:00
RELEASING.md 'master' to 'main' (#30714) 2021-09-25 09:39:36 +02:00

Akka Latest versionBuild Status

We believe that writing correct concurrent & distributed, resilient and elastic applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction.

Akka is here to change that.

Using the Actor Model we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. This model is a perfect match for the principles laid out in the Reactive Manifesto.

For resilience, we adopt the "Let it crash" model which the telecom industry has used with great success to build applications that self-heal and systems that never stop.

Actors also provide the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.

Learn more at akka.io.

Reference Documentation

The reference documentation is available at doc.akka.io, for Scala and Java.

Community

You can join these groups and chats to discuss and ask Akka related questions:

In addition to that, you may enjoy following:

Contributing

Contributions are very welcome!

If you see an issue that you'd like to see fixed, the best way to make it happen is to help out by submitting a pull request implementing it.

Refer to the CONTRIBUTING.md file for more details about the workflow, and general hints on how to prepare your pull request. You can also ask for clarifications or guidance in GitHub issues directly, or in the akka/dev chat if a more real time communication would be of benefit.

A chat room is available for all questions related to developing and contributing to Akka: gitter: akka/dev

License

Akka is Open Source and available under the Apache 2 License.