Add Akka packaging
[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
212 # Local file system snapshot store plugin.
213 akka.persistence.snapshot-store.local {
214     # Class name of the plugin.
215     class = "akka.persistence.snapshot.local.LocalSnapshotStore"
216     # Dispatcher for the plugin actor.
217     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
218     # Dispatcher for streaming snapshot IO.
219     stream-dispatcher = "akka.persistence.dispatchers.default-stream-dispatcher"
220     # Storage location of snapshot files.
221     dir = "snapshots"
222     # Number load attempts when recovering from the latest snapshot fails
223     # yet older snapshot files are available. Each recovery attempt will try
224     # to recover using an older than previously failed-on snapshot file 
225     # (if any are present). If all attempts fail the recovery will fail and
226     # the persistent actor will be stopped.
227     max-load-attempts = 3
228 }
229
230 # LevelDB journal plugin.
231 # Note: this plugin requires explicit LevelDB dependency, see below. 
232 akka.persistence.journal.leveldb {
233     # Class name of the plugin.
234     class = "akka.persistence.journal.leveldb.LeveldbJournal"
235     # Dispatcher for the plugin actor.
236     plugin-dispatcher = "akka.persistence.dispatchers.default-plugin-dispatcher"
237     # Dispatcher for message replay.
238     replay-dispatcher = "akka.persistence.dispatchers.default-replay-dispatcher"
239     # Storage location of LevelDB files.
240     dir = "journal"
241     # Use fsync on write.
242     fsync = on
243     # Verify checksum on read.
244     checksum = off
245     # Native LevelDB (via JNI) or LevelDB Java port.
246     native = on
247     # Number of deleted messages per persistence id that will trigger journal compaction
248     compaction-intervals {
249     }
250 }
251
252 # Shared LevelDB journal plugin (for testing only).
253 # Note: this plugin requires explicit LevelDB dependency, see below. 
254 akka.persistence.journal.leveldb-shared {
255     # Class name of the plugin.
256     class = "akka.persistence.journal.leveldb.SharedLeveldbJournal"
257     # Dispatcher for the plugin actor.
258     plugin-dispatcher = "akka.actor.default-dispatcher"
259     # Timeout for async journal operations.
260     timeout = 10s
261     store {
262         # Dispatcher for shared store actor.
263         store-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
280 akka.persistence.journal.proxy {
281   # Class name of the plugin.
282   class = "akka.persistence.journal.PersistencePluginProxy"
283   # Dispatcher for the plugin actor.
284   plugin-dispatcher = "akka.actor.default-dispatcher"
285   # Set this to on in the configuration of the ActorSystem
286   # that will host the target journal
287   start-target-journal = off
288   # The journal plugin config path to use for the target journal
289   target-journal-plugin = ""
290   # The address of the proxy to connect to from other nodes. Optional setting.
291   target-journal-address = ""
292   # Initialization timeout of target lookup
293   init-timeout = 10s
294 }
295
296 akka.persistence.snapshot-store.proxy {
297   # Class name of the plugin.
298   class = "akka.persistence.journal.PersistencePluginProxy"
299   # Dispatcher for the plugin actor.
300   plugin-dispatcher = "akka.actor.default-dispatcher"
301   # Set this to on in the configuration of the ActorSystem
302   # that will host the target snapshot-store
303   start-target-snapshot-store = off
304   # The journal plugin config path to use for the target snapshot-store
305   target-snapshot-store-plugin = ""
306   # The address of the proxy to connect to from other nodes. Optional setting.
307   target-snapshot-store-address = ""
308   # Initialization timeout of target lookup
309   init-timeout = 10s
310 }
311
312 # LevelDB persistence requires the following dependency declarations:
313 #
314 # SBT:
315 #       "org.iq80.leveldb"            % "leveldb"          % "0.7"
316 #       "org.fusesource.leveldbjni"   % "leveldbjni-all"   % "1.8"
317 #
318 # Maven:
319 #        <dependency>
320 #            <groupId>org.iq80.leveldb</groupId>
321 #            <artifactId>leveldb</artifactId>
322 #            <version>0.7</version>
323 #        </dependency>
324 #        <dependency>
325 #            <groupId>org.fusesource.leveldbjni</groupId>
326 #            <artifactId>leveldbjni-all</artifactId>
327 #            <version>1.8</version>
328 #        </dependency>