akka.actor.typed { # List FQCN of `akka.actor.typed.ExtensionId`s which shall be loaded at actor system startup. # Should be on the format: 'extensions = ["com.example.MyExtId1", "com.example.MyExtId2"]' etc. # See the Akka Documentation for more info about Extensions extensions = [] # List FQCN of extensions which shall be loaded at actor system startup. # Library extensions are regular extensions that are loaded at startup and are # available for third party library authors to enable auto-loading of extensions when # present on the classpath. This is done by appending entries: # 'library-extensions += "Extension"' in the library `reference.conf`. # # Should not be set by end user applications in 'application.conf', use the extensions property for that # library-extensions = ${?akka.actor.typed.library-extensions} [] # Receptionist is started eagerly to allow clustered receptionist to gather remote registrations early on. library-extensions += "akka.actor.typed.receptionist.Receptionist$" # While an actor is restarted (waiting for backoff to expire and children to stop) # incoming messages and signals are stashed, and delivered later to the newly restarted # behavior. This property defines the capacity in number of messages of the stash # buffer. If the capacity is exceed then additional incoming messages are dropped. restart-stash-capacity = 1000 # Typed mailbox defaults to the single consumber mailbox as balancing dispatcher is not supported default-mailbox { mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox" } } # Load typed extensions by a classic extension. akka.library-extensions += "akka.actor.typed.internal.adapter.ActorSystemAdapter$LoadTypedExtensions" akka.actor { serializers { typed-misc = "akka.actor.typed.internal.MiscMessageSerializer" service-key = "akka.actor.typed.internal.receptionist.ServiceKeySerializer" } serialization-identifiers { "akka.actor.typed.internal.MiscMessageSerializer" = 24 "akka.actor.typed.internal.receptionist.ServiceKeySerializer" = 26 } serialization-bindings { "akka.actor.typed.ActorRef" = typed-misc "akka.actor.typed.internal.adapter.ActorRefAdapter" = typed-misc "akka.actor.typed.internal.receptionist.DefaultServiceKey" = service-key } } # When using Akka Typed (having akka-actor-typed in classpath) the # akka.event.slf4j.Slf4jLogger is enabled instead of the DefaultLogger # even though it has not been explicitly defined in `akka.loggers` # configuration. # # Slf4jLogger will be used for all Akka classic logging via eventStream, # including logging from Akka internals. The Slf4jLogger is then using # an ordinary org.slf4j.Logger to emit the log events. # # The Slf4jLoggingFilter is also enabled automatically. # # This behavior can be disabled by setting this property to `off`. akka.use-slf4j = on akka.reliable-delivery { producer-controller { # To avoid head of line blocking from serialization and transfer # of large messages this can be enabled. # Large messages are chunked into pieces of the given size in bytes. The # chunked messages are sent separatetely and assembled on the consumer side. # Serialization and deserialization is performed by the ProducerController and # ConsumerController respectively instead of in the remote transport layer. chunk-large-messages = off durable-queue { # The ProducerController uses this timeout for the requests to # the durable queue. If there is no reply within the timeout it # will be retried. request-timeout = 3s # The ProducerController retries requests to the durable queue this # number of times before failing. retry-attempts = 10 # The ProducerController retries sending the first message with this interval # until it has been confirmed. resend-first-interval = 1s } } consumer-controller { # Number of messages in flight between ProducerController and # ConsumerController. The ConsumerController requests for more messages # when half of the window has been used. flow-control-window = 50 # The ConsumerController resends flow control messages to the # ProducerController with the resend-interval-min, and increasing # it gradually to resend-interval-max when idle. resend-interval-min = 2s resend-interval-max = 30s # If this is enabled lost messages will not be resent, but flow control is used. # This can be more efficient since messages don't have to be # kept in memory in the `ProducerController` until they have been # confirmed, but the drawback is that lost messages will not be delivered. only-flow-control = false } work-pulling { producer-controller = ${akka.reliable-delivery.producer-controller} producer-controller { # Limit of how many messages that can be buffered when there # is no demand from the consumer side. buffer-size = 1000 # Ask timeout for sending message to worker until receiving Ack from worker internal-ask-timeout = 60s # Chunked messages not implemented for work-pulling yet. Override to not # propagate property from akka.reliable-delivery.producer-controller. chunk-large-messages = off } } }