Fixup checkstyle
[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 https://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   # DurableStateStore settings
192   state {
193     # Absolute path to the KeyValueStore plugin configuration entry used by
194     # DurableStateBehavior actors by default.
195     # DurableStateBehavior can override `durableStateStorePluginId` method (`withDurableStateStorePluginId`)
196     # in order to rely on a different plugin.
197     plugin = ""
198   }
199
200   # Fallback settings for DurableStateStore plugin configurations
201   # These settings are used if they are not defined in plugin config section.
202   state-plugin-fallback {
203     recovery-timeout = 30s
204   }
205 }
206
207 # Protobuf serialization for the persistent extension messages.
208 akka.actor {
209     serializers {
210         akka-persistence-message = "akka.persistence.serialization.MessageSerializer"
211         akka-persistence-snapshot = "akka.persistence.serialization.SnapshotSerializer"
212     }
213     serialization-bindings {
214         "akka.persistence.serialization.Message" = akka-persistence-message
215         "akka.persistence.serialization.Snapshot" = akka-persistence-snapshot
216     }
217     serialization-identifiers {
218         "akka.persistence.serialization.MessageSerializer" = 7
219         "akka.persistence.serialization.SnapshotSerializer" = 8
220     }
221 }
222
223
224 ###################################################
225 # Persistence plugins included with the extension #
226 ###################################################
227
228 # In-memory journal plugin.
229 akka.persistence.journal.inmem {
230     # Class name of the plugin.
231     class = "akka.persistence.journal.inmem.InmemJournal"
232     # Dispatcher for the plugin actor.
233     plugin-dispatcher = "akka.actor.default-dispatcher"
234
235     # Turn this on to test serialization of the events
236     test-serialization = off
237 }
238
239 # Local file system snapshot store plugin.
240 akka.persistence.snapshot-store.local {
241     # Class name of the plugin.
242     class = "akka.persistence.snapshot.local.LocalSnapshotStore"
243     # Dispatcher for the plugin actor.
244     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
245     # Dispatcher for streaming snapshot IO.
246     stream-dispatcher = "akka.persistence.dispatchers.default-stream-dispatcher"
247     # Storage location of snapshot files.
248     dir = "snapshots"
249     # Number load attempts when recovering from the latest snapshot fails
250     # yet older snapshot files are available. Each recovery attempt will try
251     # to recover using an older than previously failed-on snapshot file 
252     # (if any are present). If all attempts fail the recovery will fail and
253     # the persistent actor will be stopped.
254     max-load-attempts = 3
255 }
256
257 # LevelDB journal plugin.
258 # Note: this plugin requires explicit LevelDB dependency, see below. 
259 akka.persistence.journal.leveldb {
260     # Class name of the plugin.
261     class = "akka.persistence.journal.leveldb.LeveldbJournal"
262     # Dispatcher for the plugin actor.
263     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
264     # Dispatcher for message replay.
265     replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
266     # Storage location of LevelDB files.
267     dir = "journal"
268     # Use fsync on write.
269     fsync = on
270     # Verify checksum on read.
271     checksum = off
272     # Native LevelDB (via JNI) or LevelDB Java port.
273     native = on
274     # Number of deleted messages per persistence id that will trigger journal compaction
275     compaction-intervals {
276     }
277 }
278
279 # Shared LevelDB journal plugin (for testing only).
280 # Note: this plugin requires explicit LevelDB dependency, see below. 
281 akka.persistence.journal.leveldb-shared {
282     # Class name of the plugin.
283     class = "akka.persistence.journal.leveldb.SharedLeveldbJournal"
284     # Dispatcher for the plugin actor.
285     plugin-dispatcher = "akka.actor.default-dispatcher"
286     # Timeout for async journal operations.
287     timeout = 10s
288     store {
289         # Dispatcher for shared store actor.
290         store-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
291         # Dispatcher for message replay.
292         replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
293         # Storage location of LevelDB files.
294         dir = "journal"
295         # Use fsync on write.
296         fsync = on
297         # Verify checksum on read.
298         checksum = off
299         # Native LevelDB (via JNI) or LevelDB Java port.
300         native = on
301         # Number of deleted messages per persistence id that will trigger journal compaction
302         compaction-intervals {
303         }
304     }
305 }
306
307 akka.persistence.journal.proxy {
308   # Class name of the plugin.
309   class = "akka.persistence.journal.PersistencePluginProxy"
310   # Dispatcher for the plugin actor.
311   plugin-dispatcher = "akka.actor.default-dispatcher"
312   # Set this to on in the configuration of the ActorSystem
313   # that will host the target journal
314   start-target-journal = off
315   # The journal plugin config path to use for the target journal
316   target-journal-plugin = ""
317   # The address of the proxy to connect to from other nodes. Optional setting.
318   target-journal-address = ""
319   # Initialization timeout of target lookup
320   init-timeout = 10s
321 }
322
323 akka.persistence.snapshot-store.proxy {
324   # Class name of the plugin.
325   class = "akka.persistence.journal.PersistencePluginProxy"
326   # Dispatcher for the plugin actor.
327   plugin-dispatcher = "akka.actor.default-dispatcher"
328   # Set this to on in the configuration of the ActorSystem
329   # that will host the target snapshot-store
330   start-target-snapshot-store = off
331   # The journal plugin config path to use for the target snapshot-store
332   target-snapshot-store-plugin = ""
333   # The address of the proxy to connect to from other nodes. Optional setting.
334   target-snapshot-store-address = ""
335   # Initialization timeout of target lookup
336   init-timeout = 10s
337 }
338
339 # LevelDB persistence requires the following dependency declarations:
340 #
341 # SBT:
342 #       "org.iq80.leveldb"            % "leveldb"          % "0.7"
343 #       "org.fusesource.leveldbjni"   % "leveldbjni-all"   % "1.8"
344 #
345 # Maven:
346 #        <dependency>
347 #            <groupId>org.iq80.leveldb</groupId>
348 #            <artifactId>leveldb</artifactId>
349 #            <version>0.7</version>
350 #        </dependency>
351 #        <dependency>
352 #            <groupId>org.fusesource.leveldbjni</groupId>
353 #            <artifactId>leveldbjni-all</artifactId>
354 #            <version>1.8</version>
355 #        </dependency>