Bump akka to 2.6.16
[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       # Set this to true if successful loading of snapshot is not necessary.
173       # This can be useful when it is alright to ignore snapshot in case of
174       # for example deserialization errors. When snapshot loading fails it will instead
175       # recover by replaying all events.
176       # Don't set to true if events are deleted because that would
177       # result in wrong recovered state if snapshot load fails.
178       snapshot-is-optional = false
179
180     }
181
182   fsm {
183     # PersistentFSM saves snapshots after this number of persistent
184     # events. Snapshots are used to reduce recovery times.
185     # When you disable this feature, specify snapshot-after = off.
186     # To enable the feature, specify a number like snapshot-after = 1000
187     # which means a snapshot is taken after persisting every 1000 events.
188     snapshot-after = off
189   }
190 }
191
192 # Protobuf serialization for the persistent extension messages.
193 akka.actor {
194     serializers {
195         akka-persistence-message = "akka.persistence.serialization.MessageSerializer"
196         akka-persistence-snapshot = "akka.persistence.serialization.SnapshotSerializer"
197     }
198     serialization-bindings {
199         "akka.persistence.serialization.Message" = akka-persistence-message
200         "akka.persistence.serialization.Snapshot" = akka-persistence-snapshot
201     }
202     serialization-identifiers {
203         "akka.persistence.serialization.MessageSerializer" = 7
204         "akka.persistence.serialization.SnapshotSerializer" = 8
205     }
206 }
207
208
209 ###################################################
210 # Persistence plugins included with the extension #
211 ###################################################
212
213 # In-memory journal plugin.
214 akka.persistence.journal.inmem {
215     # Class name of the plugin.
216     class = "akka.persistence.journal.inmem.InmemJournal"
217     # Dispatcher for the plugin actor.
218     plugin-dispatcher = "akka.actor.default-dispatcher"
219
220     # Turn this on to test serialization of the events
221     test-serialization = off
222 }
223
224 # Local file system snapshot store plugin.
225 akka.persistence.snapshot-store.local {
226     # Class name of the plugin.
227     class = "akka.persistence.snapshot.local.LocalSnapshotStore"
228     # Dispatcher for the plugin actor.
229     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
230     # Dispatcher for streaming snapshot IO.
231     stream-dispatcher = "akka.persistence.dispatchers.default-stream-dispatcher"
232     # Storage location of snapshot files.
233     dir = "snapshots"
234     # Number load attempts when recovering from the latest snapshot fails
235     # yet older snapshot files are available. Each recovery attempt will try
236     # to recover using an older than previously failed-on snapshot file 
237     # (if any are present). If all attempts fail the recovery will fail and
238     # the persistent actor will be stopped.
239     max-load-attempts = 3
240 }
241
242 # LevelDB journal plugin.
243 # Note: this plugin requires explicit LevelDB dependency, see below. 
244 akka.persistence.journal.leveldb {
245     # Class name of the plugin.
246     class = "akka.persistence.journal.leveldb.LeveldbJournal"
247     # Dispatcher for the plugin actor.
248     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
249     # Dispatcher for message replay.
250     replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
251     # Storage location of LevelDB files.
252     dir = "journal"
253     # Use fsync on write.
254     fsync = on
255     # Verify checksum on read.
256     checksum = off
257     # Native LevelDB (via JNI) or LevelDB Java port.
258     native = on
259     # Number of deleted messages per persistence id that will trigger journal compaction
260     compaction-intervals {
261     }
262 }
263
264 # Shared LevelDB journal plugin (for testing only).
265 # Note: this plugin requires explicit LevelDB dependency, see below. 
266 akka.persistence.journal.leveldb-shared {
267     # Class name of the plugin.
268     class = "akka.persistence.journal.leveldb.SharedLeveldbJournal"
269     # Dispatcher for the plugin actor.
270     plugin-dispatcher = "akka.actor.default-dispatcher"
271     # Timeout for async journal operations.
272     timeout = 10s
273     store {
274         # Dispatcher for shared store actor.
275         store-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
276         # Dispatcher for message replay.
277         replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
278         # Storage location of LevelDB files.
279         dir = "journal"
280         # Use fsync on write.
281         fsync = on
282         # Verify checksum on read.
283         checksum = off
284         # Native LevelDB (via JNI) or LevelDB Java port.
285         native = on
286         # Number of deleted messages per persistence id that will trigger journal compaction
287         compaction-intervals {
288         }
289     }
290 }
291
292 akka.persistence.journal.proxy {
293   # Class name of the plugin.
294   class = "akka.persistence.journal.PersistencePluginProxy"
295   # Dispatcher for the plugin actor.
296   plugin-dispatcher = "akka.actor.default-dispatcher"
297   # Set this to on in the configuration of the ActorSystem
298   # that will host the target journal
299   start-target-journal = off
300   # The journal plugin config path to use for the target journal
301   target-journal-plugin = ""
302   # The address of the proxy to connect to from other nodes. Optional setting.
303   target-journal-address = ""
304   # Initialization timeout of target lookup
305   init-timeout = 10s
306 }
307
308 akka.persistence.snapshot-store.proxy {
309   # Class name of the plugin.
310   class = "akka.persistence.journal.PersistencePluginProxy"
311   # Dispatcher for the plugin actor.
312   plugin-dispatcher = "akka.actor.default-dispatcher"
313   # Set this to on in the configuration of the ActorSystem
314   # that will host the target snapshot-store
315   start-target-snapshot-store = off
316   # The journal plugin config path to use for the target snapshot-store
317   target-snapshot-store-plugin = ""
318   # The address of the proxy to connect to from other nodes. Optional setting.
319   target-snapshot-store-address = ""
320   # Initialization timeout of target lookup
321   init-timeout = 10s
322 }
323
324 # LevelDB persistence requires the following dependency declarations:
325 #
326 # SBT:
327 #       "org.iq80.leveldb"            % "leveldb"          % "0.7"
328 #       "org.fusesource.leveldbjni"   % "leveldbjni-all"   % "1.8"
329 #
330 # Maven:
331 #        <dependency>
332 #            <groupId>org.iq80.leveldb</groupId>
333 #            <artifactId>leveldb</artifactId>
334 #            <version>0.7</version>
335 #        </dependency>
336 #        <dependency>
337 #            <groupId>org.fusesource.leveldbjni</groupId>
338 #            <artifactId>leveldbjni-all</artifactId>
339 #            <version>1.8</version>
340 #        </dependency>