Different approach than in classic AtLeastOnceDelivery because I would like:
* support flow control, with a work pulling approach
* be possible to use with or without persistence (without it may loose
messages if producer node crashes)
* detect lost messages on the consumer side and let that drive resends,
instead of aggressively resending from producer side
* deliver messages in order and deduplicate resent messages
* have an efficient protocol for acknowledgments over the network (not ack each message),
but still have a simple one-by-one protocol for the end user
* support 3 use cases (building blocks)
* point-to-point
* work pulling
* sharding
* optional durable queue, with one event sourced implementation
* protobuf serialization
* ApiMayChange
* reference docs and examples
* api docs
* doc example code missing so far
* First stab at distributed pubsub for typed
* Also allow sending to a single subscriber across the topic
* Revert "Also allow sending to a single subscriber across the topic"
This reverts commit 4fd4f0b75c0dda01706dcde70645dcfa09da889b.
* Serializer and basic multi-jvm test
* docs
* Review feedback
* This reads better
* One brace too many
* sample formatting/headers/yadi
* Hide actual messages to ease bincomp evolution
* More tesssssts
* And even moar tessssssssts
* Review feedback addressed
* Same serialization as typed sharding
Mention turnaround in docs
* Unfortunately it seems the jdk9-only tests could not actually be compiled.
With these changes those can actually be compiled and ran again.
* Always link to jdk11 for java.* javadocs
* Update sbt-paradox-akka to fix linking to inner classes for javadoc
* it was intended to automatically use Slf4jLogger in akka-slf4j
when akka-actor-typed is used
* otherwise it would be confusing to have some Akka logging directly
to slf4j and some to Akka stdout logging, if akka-slf4j is not
added
* Merge benchmark projects
* Make SingleConsumerMultiProducer the default mail box for typed
* Make SingleConsumerMultiProducer the default mail box for typed
* Add default mailbox back to classic + define default mailbox for typed in reference
* Fix custom dispatcher
* attempt to fix the mysterious "Could not create directory,
file exists and is not a directory" problem in multi-node tests
* only depend on protobufV3 from akka-stream, all others dependen
on stream
* adding dependency from akka-persistence to akka-stream that is
not needed but in practise it shouldn't hurt since akka-stream
is very likely used anyway (also from persistence plugins)
Move utils to construct PersistenceId
* Move from EntityTypeKey to PersistenceId
* Thereby no persistence dependencies in sharding
* Reference documentation PersistenceId and how to use with Sharding
* Add EntityTypeKey to EntityContext to make it "complete"
* One consequence of adding EntityTypeKey to EntityContext is that
now requires additional message type parameter and then type inference
for `init` (Entity) breaks down. Solved by using two parameter lists in
Entity.apply, which is pretty nice anyway since the second parameter is
a function.
* as bonus the dependency can be removed
* Removes sections that describe language features: Futures and Duration
* Keeps section for logging and circuit breaker
* Keep logging as is for now, to be updated with the Typed SL4J logging
Creates issues for
* Documenting typed extensions https://github.com/akka/akka/issues/27448
* Future interactions in https://github.com/akka/akka/issues/27449
Refs #27223
Add redirects from removed pages to 2.5 docs
Make indexes complete and fix link
'Classic' in the title for docs for classic API's
* akka.actor.allow-java-serialization = off
* Moved primitive (Long, Int, String, ByteString) serializers
from akka-remote to akka-actor since they had no dependency
and are useful also in local systems, e.g. persistence.
* e.g. needed for persistence-tck
* less allow-java-serialization=on in tests
* CborSerializable in Jackson/test module for ease of use
* JavaSerializable for Java serialization in tests, already in akka-testkit,
but misconfigured
* Made tests pass
* allow-java-serialization=on in akka-persistence
* allow-java-serialization=on in classic remoting tests
* JavaSerializable and CborSerializable in other remoting tests
* Added serialization for
* Boolean
* java.util.concurrent.TimeoutException, AskTimeoutException
* support for testing serialization with the inmem journal
* utility to verifySerialization, in SerializationTestKit
* remove AccountExampleWithCommandHandlersInState becuase not possible to serialize State when it's not static
* Effect() is factory in EventSourcedBehavior class
* test the account examples
* SharedLeveldbJournal.configToEnableJavaSerializationForTest
* support for exceptions from remote deployed child actors
* fallback to akka.remote.serialization.ThrowableNotSerializableException
if exception is not serializable when wrapped in system messages from
remote deployed child actors and Status.Failure messages
* it's implemented in `WrappedPayloadSupport.payloadBuilder`
* update reference documentation
* serialize-messages=off in most places, separate ticket for
improving or removing that feature
* migration guide, including description of rolling update
* fix 2.13 compiler error
* minor review feedback
* Remove ApiMayChange from typed testkit
* Don't disable mima plugin to highlight times we break bin cmompat
Refs #26897
* Add api may change to test inbox and behavior test kit
* most convenient for users to include it akka-serialization-jackson
and load it when akka-actor-typed is in classpath
* provided dependency to akka-actor-typed
Note that it will be fully stable in 2.6.0 so no guarantees for milestones before that.
* remove api may change from sharding lease settings
* mima
* Remove settings from module
Note that it will become fully stable in 2.6.0 so this doesn't mean that there will be no more API changes.
* Remove from event sourced behavior
* Remove api may change settings from typed modules
* Dont check mima for typed until 2.6
* Thought that the `crossScalaVersions -= Dependencies.scala213Version` in
the akka-serialization-jackson project would work also for the +buildRelease, but
in dry-run it didn't so building twice with explicit Scala versions instead.
* akka-serialization-jackson is then excluded from the aggregate for 2.13
* Copied from Lagom, with the following differences
* Jsonable and CompressedJsonable not included
* pcollection and guava modules not enabled by default
* added scala and afterburner modules
* JSON, CBOR and Smile options (different serializers)
* JMH benchmark
* jackson version 2.9.9
* test polymorphism
* serializer for ActorRef
* Address serializer
* FiniteDuration serializer, same as java.time.Duration
* use blacklist from Jackson databind against gadgets
* disallow binding to open ended types, such as java.io.Serializable
* Configurable ObjectMapper ser/deser features
* testing date formats with WRITE_DATES_AS_TIMESTAMPS on/off
* ActorSystemSetup for ObjectMapper creation
* and possibility to lookup created ObjectMapper via ObjectMapperProvider extension
* createObjectMapper without ActorSystem, needed by Lagom test
* add basic docs
* skip Scala 2.13 for akka-serialization-jackson for now, until the Jackson
Scala module has been released
* akka.build.version property, #26958
* and use timestamped snapshot version if "timestamp" is passed in
* to support publishing snapshots with same version for Scala 2.12 and 2.13
with +publish
* remove stampVersion plugin, since it's no longer needed
* store currentDateTime in system property
* to survive reloads
* Remove akka-camel
This module has been deprecated since 2.5.0 and will now be removed in 2.6.
If there is interest it can be moved to a separate community-maintained repo.
* Add note to migration guide
* Remove from allModules as well
* Remove Scala 2.11 from crossScalaVersions
* because +buildRelease doesn't work with mixed crossScalaVersions
* let's use akka.build.scalaVersion when building for 2.11
* aggregatedProjects adjusted depending on akka.build.scalaVersion is 2.11 or not,
there excluding/including the -typed modules
* update travis to use akka.build.scalaVersion