Bump akka to 2.6.12
[controller.git] / akka / repackaged-akka-jar / src / main / resources / persistence_reference.conf
1 ###########################################################
2 # Akka Persistence Extension Reference Configuration File #
3 ###########################################################
4
5 # This is the reference config file that contains all the default settings.
6 # Make your edits in your application.conf in order to override these settings.
7
8 # Directory of persistence journal and snapshot store plugins is available at the 
9 # Akka Community Projects page http://akka.io/community/
10
11 # Default persistence extension settings.
12 akka.persistence {
13
14     # When starting many persistent actors at the same time the journal
15     # and its data store is protected from being overloaded by limiting number
16     # of recoveries that can be in progress at the same time. When
17     # exceeding the limit the actors will wait until other recoveries have
18     # been completed.   
19     max-concurrent-recoveries = 50
20
21     # Fully qualified class name providing a default internal stash overflow strategy.
22     # It needs to be a subclass of akka.persistence.StashOverflowStrategyConfigurator.
23     # The default strategy throws StashOverflowException.
24     internal-stash-overflow-strategy = "akka.persistence.ThrowExceptionConfigurator"
25     journal {
26         # Absolute path to the journal plugin configuration entry used by 
27         # persistent actor by default.
28         # Persistent actor can override `journalPluginId` method 
29         # in order to rely on a different journal plugin.
30         plugin = ""
31         # List of journal plugins to start automatically. Use "" for the default journal plugin.
32         auto-start-journals = []
33     }
34     snapshot-store {
35         # Absolute path to the snapshot plugin configuration entry used by
36         # persistent actor by default.
37         # Persistent actor can override `snapshotPluginId` method
38         # in order to rely on a different snapshot plugin.
39         # It is not mandatory to specify a snapshot store plugin.
40         # If you don't use snapshots you don't have to configure it.
41         # Note that Cluster Sharding is using snapshots, so if you
42         # use Cluster Sharding you need to define a snapshot store plugin. 
43         plugin = ""
44         # List of snapshot stores to start automatically. Use "" for the default snapshot store.
45         auto-start-snapshot-stores = []
46     }
47     # used as default-snapshot store if no plugin configured 
48     # (see `akka.persistence.snapshot-store`)
49     no-snapshot-store {
50       class = "akka.persistence.snapshot.NoSnapshotStore"
51     }
52     # Default reliable delivery settings.
53     at-least-once-delivery {
54         # Interval between re-delivery attempts.
55         redeliver-interval = 5s
56         # Maximum number of unconfirmed messages that will be sent in one 
57         # re-delivery burst.
58         redelivery-burst-limit = 10000
59         # After this number of delivery attempts a 
60         # `ReliableRedelivery.UnconfirmedWarning`, message will be sent to the actor.
61         warn-after-number-of-unconfirmed-attempts = 5
62         # Maximum number of unconfirmed messages that an actor with 
63         # AtLeastOnceDelivery is allowed to hold in memory.
64         max-unconfirmed-messages = 100000
65     }
66     # Default persistent extension thread pools.
67     dispatchers {
68         # Dispatcher used by every plugin which does not declare explicit
69         # `plugin-dispatcher` field.
70         default-plugin-dispatcher {
71             type = PinnedDispatcher
72             executor = "thread-pool-executor"
73         }
74         # Default dispatcher for message replay.
75         default-replay-dispatcher {
76             type = Dispatcher
77             executor = "fork-join-executor"
78             fork-join-executor {
79                 parallelism-min = 2
80                 parallelism-max = 8
81             }
82         }
83         # Default dispatcher for streaming snapshot IO
84         default-stream-dispatcher {
85             type = Dispatcher
86             executor = "fork-join-executor"
87             fork-join-executor {
88                 parallelism-min = 2
89                 parallelism-max = 8
90             }
91         }
92     }
93
94     # Fallback settings for journal plugin configurations.
95     # These settings are used if they are not defined in plugin config section.
96     journal-plugin-fallback {
97
98       # Fully qualified class name providing journal plugin api implementation.
99       # It is mandatory to specify this property.
100       # The class must have a constructor without parameters or constructor with
101       # one `com.typesafe.config.Config` parameter.
102       class = ""
103
104       # Dispatcher for the plugin actor.
105       plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
106
107       # Dispatcher for message replay.
108       replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
109
110       # Removed: used to be the Maximum size of a persistent message batch written to the journal.
111       # Now this setting is without function, PersistentActor will write as many messages
112       # as it has accumulated since the last write.
113       max-message-batch-size = 200
114
115       # If there is more time in between individual events gotten from the journal
116       # recovery than this the recovery will fail.
117       # Note that it also affects reading the snapshot before replaying events on
118       # top of it, even though it is configured for the journal.
119       recovery-event-timeout = 30s
120
121       circuit-breaker {
122         max-failures = 10
123         call-timeout = 10s
124         reset-timeout = 30s
125       }
126
127       # The replay filter can detect a corrupt event stream by inspecting
128       # sequence numbers and writerUuid when replaying events.
129       replay-filter {
130         # What the filter should do when detecting invalid events.
131         # Supported values:
132         # `repair-by-discard-old` : discard events from old writers,
133         #                           warning is logged
134         # `fail` : fail the replay, error is logged
135         # `warn` : log warning but emit events untouched
136         # `off` : disable this feature completely
137         mode = repair-by-discard-old
138
139         # It uses a look ahead buffer for analyzing the events.
140         # This defines the size (in number of events) of the buffer.
141         window-size = 100
142
143         # How many old writerUuid to remember
144         max-old-writers = 10
145
146         # Set this to `on` to enable detailed debug logging of each
147         # replayed event.
148         debug = off
149       }
150     }
151
152     # Fallback settings for snapshot store plugin configurations
153     # These settings are used if they are not defined in plugin config section.
154     snapshot-store-plugin-fallback {
155
156       # Fully qualified class name providing snapshot store plugin api
157       # implementation. It is mandatory to specify this property if
158       # snapshot store is enabled.
159       # The class must have a constructor without parameters or constructor with
160       # one `com.typesafe.config.Config` parameter.
161       class = ""
162
163       # Dispatcher for the plugin actor.
164       plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
165
166       circuit-breaker {
167         max-failures = 5
168         call-timeout = 20s
169         reset-timeout = 60s
170       }
171     }
172
173   fsm {
174     # PersistentFSM saves snapshots after this number of persistent
175     # events. Snapshots are used to reduce recovery times.
176     # When you disable this feature, specify snapshot-after = off.
177     # To enable the feature, specify a number like snapshot-after = 1000
178     # which means a snapshot is taken after persisting every 1000 events.
179     snapshot-after = off
180   }
181 }
182
183 # Protobuf serialization for the persistent extension messages.
184 akka.actor {
185     serializers {
186         akka-persistence-message = "akka.persistence.serialization.MessageSerializer"
187         akka-persistence-snapshot = "akka.persistence.serialization.SnapshotSerializer"
188     }
189     serialization-bindings {
190         "akka.persistence.serialization.Message" = akka-persistence-message
191         "akka.persistence.serialization.Snapshot" = akka-persistence-snapshot
192     }
193     serialization-identifiers {
194         "akka.persistence.serialization.MessageSerializer" = 7
195         "akka.persistence.serialization.SnapshotSerializer" = 8
196     }
197 }
198
199
200 ###################################################
201 # Persistence plugins included with the extension #
202 ###################################################
203
204 # In-memory journal plugin.
205 akka.persistence.journal.inmem {
206     # Class name of the plugin.
207     class = "akka.persistence.journal.inmem.InmemJournal"
208     # Dispatcher for the plugin actor.
209     plugin-dispatcher = "akka.actor.default-dispatcher"
210
211     # Turn this on to test serialization of the events
212     test-serialization = off
213 }
214
215 # Local file system snapshot store plugin.
216 akka.persistence.snapshot-store.local {
217     # Class name of the plugin.
218     class = "akka.persistence.snapshot.local.LocalSnapshotStore"
219     # Dispatcher for the plugin actor.
220     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
221     # Dispatcher for streaming snapshot IO.
222     stream-dispatcher = "akka.persistence.dispatchers.default-stream-dispatcher"
223     # Storage location of snapshot files.
224     dir = "snapshots"
225     # Number load attempts when recovering from the latest snapshot fails
226     # yet older snapshot files are available. Each recovery attempt will try
227     # to recover using an older than previously failed-on snapshot file 
228     # (if any are present). If all attempts fail the recovery will fail and
229     # the persistent actor will be stopped.
230     max-load-attempts = 3
231 }
232
233 # LevelDB journal plugin.
234 # Note: this plugin requires explicit LevelDB dependency, see below. 
235 akka.persistence.journal.leveldb {
236     # Class name of the plugin.
237     class = "akka.persistence.journal.leveldb.LeveldbJournal"
238     # Dispatcher for the plugin actor.
239     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
240     # Dispatcher for message replay.
241     replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
242     # Storage location of LevelDB files.
243     dir = "journal"
244     # Use fsync on write.
245     fsync = on
246     # Verify checksum on read.
247     checksum = off
248     # Native LevelDB (via JNI) or LevelDB Java port.
249     native = on
250     # Number of deleted messages per persistence id that will trigger journal compaction
251     compaction-intervals {
252     }
253 }
254
255 # Shared LevelDB journal plugin (for testing only).
256 # Note: this plugin requires explicit LevelDB dependency, see below. 
257 akka.persistence.journal.leveldb-shared {
258     # Class name of the plugin.
259     class = "akka.persistence.journal.leveldb.SharedLeveldbJournal"
260     # Dispatcher for the plugin actor.
261     plugin-dispatcher = "akka.actor.default-dispatcher"
262     # Timeout for async journal operations.
263     timeout = 10s
264     store {
265         # Dispatcher for shared store actor.
266         store-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
267         # Dispatcher for message replay.
268         replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
269         # Storage location of LevelDB files.
270         dir = "journal"
271         # Use fsync on write.
272         fsync = on
273         # Verify checksum on read.
274         checksum = off
275         # Native LevelDB (via JNI) or LevelDB Java port.
276         native = on
277         # Number of deleted messages per persistence id that will trigger journal compaction
278         compaction-intervals {
279         }
280     }
281 }
282
283 akka.persistence.journal.proxy {
284   # Class name of the plugin.
285   class = "akka.persistence.journal.PersistencePluginProxy"
286   # Dispatcher for the plugin actor.
287   plugin-dispatcher = "akka.actor.default-dispatcher"
288   # Set this to on in the configuration of the ActorSystem
289   # that will host the target journal
290   start-target-journal = off
291   # The journal plugin config path to use for the target journal
292   target-journal-plugin = ""
293   # The address of the proxy to connect to from other nodes. Optional setting.
294   target-journal-address = ""
295   # Initialization timeout of target lookup
296   init-timeout = 10s
297 }
298
299 akka.persistence.snapshot-store.proxy {
300   # Class name of the plugin.
301   class = "akka.persistence.journal.PersistencePluginProxy"
302   # Dispatcher for the plugin actor.
303   plugin-dispatcher = "akka.actor.default-dispatcher"
304   # Set this to on in the configuration of the ActorSystem
305   # that will host the target snapshot-store
306   start-target-snapshot-store = off
307   # The journal plugin config path to use for the target snapshot-store
308   target-snapshot-store-plugin = ""
309   # The address of the proxy to connect to from other nodes. Optional setting.
310   target-snapshot-store-address = ""
311   # Initialization timeout of target lookup
312   init-timeout = 10s
313 }
314
315 # LevelDB persistence requires the following dependency declarations:
316 #
317 # SBT:
318 #       "org.iq80.leveldb"            % "leveldb"          % "0.7"
319 #       "org.fusesource.leveldbjni"   % "leveldbjni-all"   % "1.8"
320 #
321 # Maven:
322 #        <dependency>
323 #            <groupId>org.iq80.leveldb</groupId>
324 #            <artifactId>leveldb</artifactId>
325 #            <version>0.7</version>
326 #        </dependency>
327 #        <dependency>
328 #            <groupId>org.fusesource.leveldbjni</groupId>
329 #            <artifactId>leveldbjni-all</artifactId>
330 #            <version>1.8</version>
331 #        </dependency>