To use Hazelcast Enterprise, you need to set the license key here or programmatically. Controls if missing replacement value should lead to stop the boot process. Data type used to store entries. Possible values: BINARY (default): keys and values are stored as binary data. OBJECT: values are stored in their object forms. NATIVE: keys and values are stored in native memory. Only available on Hazelcast Enterprise. True (default) if statistics gathering is enabled on the map, false otherwise. This parameter is deprecated as of Hazelcast 3.6 Use cache-deserialized-values attribute instead. When both optimize-query and cache-deserialized-values are used at the same time Hazelcast will do its best to detect possible conflicts. Conflict detection is done on best-effort basis and you should not rely on it. If true, increases the speed of query processes in the map. It only works when in-memory-format is set as BINARY and performs a pre-caching on the entries queried. Default value is false. Control caching of de-serialized values. Caching makes query evaluation faster, but it cost memory. Possible Values: NEVER: Never cache de-serialized object INDEX-ONLY: Cache values only when they are inserted into an index. ALWAYS: Always cache de-serialized values. Number of synchronous backups. For example, if 1 is set as the backup-count, then all entries of the map will be copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then all entries of the map will be copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Maximum number of seconds for each entry to stay in the map. Entries that are older than <time-to-live-seconds> and are not updated for <time-to-live-seconds> are automatically evicted from the map. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. Maximum number of seconds for each entry to stay idle in the map. Entries that are idle(not touched) for more than <max-idle-seconds> are automatically evicted from the map. The entry is touched if get, put or containsKey is called. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. Valid values are: NONE (no eviction). LRU (Least Recently Used). LFU (Least Frequently Used). RANDOM (evict random entry). NONE is the default. Internal eviction algorithm finds most appropriate entry to evict from this map by using this policy. Maximum size of the map. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. For max-size to work, set the eviction-policy property to a value other than NONE. Valid values are: PER_NODE: Maximum number of map entries in each Hazelcast instance. This is the default policy. PER_PARTITION: Maximum number of map entries within each partition. Storage size depends on the partition count in a Hazelcast instance. This attribute should not be used often. Avoid using this attribute with a small cluster: if the cluster is small it will be hosting more partitions, and therefore map entries, than that of a larger cluster. Thus, for a small cluster, eviction of the entries will decrease performance (the number of entries is large). USED_HEAP_SIZE: Maximum used heap size in megabytes per map for each Hazelcast instance. USED_HEAP_PERCENTAGE: Maximum used heap size percentage per map for each Hazelcast instance. If, for example, JVM is configured to have 1000 MB and this value is 10, then the map entries will be evicted when used heap size exceeds 100 MB. FREE_HEAP_SIZE: Minimum free heap size in megabytes for each JVM. FREE_HEAP_PERCENTAGE: Minimum free heap size percentage for each JVM. For example, if JVM is configured to have 1000 MB and this value is 10, then the map entries will be evicted when free heap size is below 100 MB. USED_NATIVE_MEMORY_SIZE: Maximum used native memory size in megabytes per map for each Hazelcast instance. USED_NATIVE_MEMORY_PERCENTAGE: Maximum used native memory size percentage per map for each Hazelcast instance. FREE_NATIVE_MEMORY_SIZE: Minimum free native memory size in megabytes for each Hazelcast instance. FREE_NATIVE_MEMORY_PERCENTAGE: Minimum free native memory size percentage for each Hazelcast instance. This parameter is deprecated as of version 3.7 due to the eviction mechanism change. (New eviction mechanism uses a probabilistic algorithm based on sampling. Please see documentation for further details.) When the map reaches maximum size, this specified percentage of the map will be evicted. Set to any integer between 0 and 100. For example, if 25 is set, 25% of the entries are evicted. This parameter is deprecated as of version 3.7 due to the eviction mechanism change. (New eviction mechanism uses a probabilistic algorithm based on sampling. Please see documentation for further details.) Minimum time in milliseconds which should pass before checking if a partition of this map is evictable or not. Default value is 100 millis. True if reading local backup entries is enabled, false otherwise. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the map. If true, previously assigned values for the affected keys will be sent to this cache-entry-listener implementation. Setting this attribute to true creates additional traffic. Default value is false. If true, this cache-entry-listener implementation will be called in a synchronous manner. Default value is false. The fully qualified class name of the cache key type. The fully qualified class name of the cache value type. True if statistics gathering is enabled on the cache, false (default) otherwise. True if management is enabled on the cache, false (default) otherwise. True if read-through caching is used, false (default) otherwise. True if write-through caching is used, false (default) otherwise. The cache loader factory class name. The cache loader class name. The cache writer factory class name. The cache writer class name. Defines the expiry policy factory class name or defines the expiry policy factory from predefined ones with duration configuration. List of cache entry listeners. Data type used to store entries. Possible values: BINARY (default): keys and values are stored as binary data. OBJECT: values are stored in their object forms. NATIVE: keys and values are stored in native memory. Only available on Hazelcast Enterprise. Number of synchronous backups. For example, if `1` is set as the `backup-count`, then all entries of the cache are copied to one other instance as synchronous for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if `1` is set as the `async-backup-count`, then all entries of the cache are copied to one other instance as asynchronous for fail-safety. `backup-count` + `async-backup-count` cannot be bigger than maximum backup count which is `6`. Valid numbers are 0 (no backup), 1, 2 ... 6. When maximum size is reached, cache is evicted based on the eviction policy. size: maximum size can be any integer between 0 and Integer.MAX_VALUE. Default value is 0. max-size-policy: max-size-policy has these valid values: ENTRY_COUNT (Maximum number of cache entries in the cache), USED_NATIVE_MEMORY_SIZE (Maximum used native memory size in megabytes per cache for each Hazelcast instance), USED_NATIVE_MEMORY_PERCENTAGE (Maximum used native memory size percentage per cache for each Hazelcast instance), FREE_NATIVE_MEMORY_SIZE (Maximum free native memory size in megabytes for each Hazelcast instance), FREE_NATIVE_MEMORY_PERCENTAGE (Maximum free native memory size percentage for each Hazelcast instance). Default value is "ENTRY_COUNT". eviction-policy: Eviction policy has these valid values: LRU (Least Recently Used), LFU (Least Frequently Used). Default value is "LRU". Wan replication configuration for cache. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. While recovering from split-brain (network partitioning), cache entries in the small cluster merge into the bigger cluster based on the policy set here. When an entry merges into the cluster, an entry with the same key might already exist in the cluster. The values of these entries might be different for that same key. Which value should be set for the key? The conflict is resolved by the policy set here.


There are built-in merge policies, such as:
`com.hazelcast.cache.merge.PassThroughCacheMergePolicy` or `PASS_THROUGH`: The entry will be added directly even though there is an existing entry for the key.
`com.hazelcast.cache.merge.PutIfAbsentCacheMergePolicy` or `PUT_IF_ABSENT`: The entry will be added if there is no existing entry for the key.
`com.hazelcast.cache.merge.HigherHitsCacheMergePolicy` or `HIGHER_HITS`: The entry with the higher number of hits wins.
`com.hazelcast.cache.merge.LatestAccessCacheMergePolicy` or `LATEST_ACCESS`: The entry which has been accessed more recently wins.
Default policy is 'com.hazelcast.cache.merge.PutIfAbsentCacheMergePolicy'

Disables invalidation events for per entry but full-flush invalidation events are still enabled. Full-flush invalidation event means that invalidation events for all entries on clear.
Name of the cache.
True (default) if statistics gathering is enabled on the queue, false otherwise. Maximum number of items in the queue. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Number of synchronous backups. For example, if 1 is set as the backup-count, then all entries of the queue are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then all entries of the queue are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Used to purge unused or empty queues. If you define a value (time in seconds) for this element, then your queue will be destroyed if it stays empty or unused for that time. Lets you add listeners (listener classes) for the queue items. You can also set the attribute include-value to true if you want the item event to contain the item values, and you can set local to true if you want to listen to the items on the local node. Includes the queue store factory class name and the following properties. Binary: By default, Hazelcast stores the queue items in serialized form in memory. Before it inserts the queue items into datastore, it deserializes them. But if you will not reach the queue store from an external application, you might prefer that the items be inserted in binary form. You can get rid of the de-serialization step; this would be a performance optimization. The binary feature is disabled by default. Memory Limit: This is the number of items after which Hazelcast will store items only to datastore. For example, if the memory limit is 1000, then the 1001st item will be put only to datastore. This feature is useful when you want to avoid out-of-memory conditions. The default number for memory-limit is 1000. If you want to always use memory, you can set it to Integer.MAX_VALUE. Bulk Load: When the queue is initialized, items are loaded from QueueStore in bulks. Bulk load is the size of these bulks. By default, bulk-load is 250. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the queue. True (default) if statistics gathering is enabled on the list, false otherwise. Maximum size of the list. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Number of synchronous backups. For example, if 1 is set as the backup-count, then all entries of the list are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then all entries of the list will be copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Lets you add listeners (listener classes) for the list items. You can also set the attribute include-value to true if you want the item event to contain the item values, and you can set local to true if you want to listen to the items on the local node. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the list. True (default) if statistics gathering is enabled on the set, false otherwise. Maximum size of the set. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Number of synchronous backups. For example, if 1 is set as the backup-count, then all entries of the set are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then all entries of the set will be copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Lets you add listeners (listener classes) for the set items. You can also set the attribute include-value to true if you want the item event to contain the item values, and you can set local to true if you want to listen to the items on the local node. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the set. Hazelcast MultiMap is a specialized map where you can store multiple values under a single key. Just like any other distributed data structure implementation in Hazelcast, MultiMap is distributed and thread-safe. Hazelcast MultiMap is not an implementation of java.util.Map due to the difference in method signatures. It supports most features of Hazelcast Map except for indexing, predicates and MapLoader/MapStore. Number of synchronous backups. For example, if 1 is set as the backup-count, then all entries of the multimap are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then all entries of the multimap are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. True (default) if statistics gathering is enabled on the multimap, false otherwise. By default, BINARY in-memory format is used, meaning that the object is stored in a serialized form. You can set it to false, then, the OBJECT in-memory format is used, which is useful when the OBJECT in-memory format has a smaller memory footprint than BINARY. Type of the value collection : SET or LIST. Lets you add listeners (listener classes) for the multimap entries. You can also set the attribute include-value to true if you want the item event to contain the entry values, and you can set local to true if you want to listen to the entries on the local node. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the multimap. A ReplicatedMap is a map-like data structure with weak consistency and values locally stored on every node of the cluster. Whenever a value is written asynchronously, the new value will be internally distributed to all existing cluster members, and eventually every node will have the new value. When a new node joins the cluster, the new node initially will request existing values from older nodes and replicate them locally. Data type used to store entries. Possible values: BINARY: keys and values are stored as binary data. OBJECT (default): values are stored in their object forms. NATIVE: keys and values are stored in native memory. Only available on Hazelcast Enterprise. Deprecated since version 3.6, concurrency-level is ignored. Number of parallel mutexes to minimize contention on keys. The default value is 32 which is a good number for lots of applications. If higher contention is seen on writes to values inside of the replicated map this value can be adjusted to the needs. Deprecated since version 3.6, replication-delay-millis is ignored. Defines the number of milliseconds after a put is executed before the value is replicated to other nodes. During this time, multiple puts can be operated and cached up to be sent out all at once after the delay. Default value is 100ms before a replication is operated. If set to 0, no delay is used and all values are replicated one by one. True if the replicated map is available for reads before the initial replication is completed, false otherwise. Default is true. If false, no Exception will be thrown when the replicated map is not yet ready, but call is blocked until the initial replication is completed. True (default) if statistics gathering is enabled on the replicated map, false otherwise. Lets you add listeners (listener classes) for the replicated map entries. You can also set the attribute include-value to true if you want the item event to contain the entry values, and you can set local to true if you want to listen to the entries on the local node. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the replicated map. True (default) if statistics gathering is enabled on the topic, false otherwise. Default is `false`, meaning there is no global order guarantee. Lets you add listeners (listener classes) for the topic messages. Default is `false`, meaning only one dedicated thread will handle topic messages. When multi-threading enabled (true) all threads from event thread pool can be used for message handling. The name of the topic. True (default) if statistics gathering is enabled on the reliable topic, false otherwise. Lets you add listeners (listener classes) for the topic messages. The maximum number of items to read in a batch. Policy to handle an overloaded topic. Available values are `DISCARD_OLDEST`, `DISCARD_NEWEST`, `BLOCK` and `ERROR`. The default value is `BLOCK. The name of the reliable topic. The JobTracker configuration is used to setup behavior of the Hazelcast MapReduce framework. Every JobTracker is capable of running multiple map reduce jobs at once and so once configuration is meant as a shared resource for all jobs created by the same JobTracker. The configuration gives full control over the expected load behavior and thread counts to be used. The maximum thread pool size of the JobTracker. The maximum size of the queue; the maximum number of tasks that can wait to be processed. A value of 0 means number of partitions * 2. retry-count is currently not used but reserved for later use where the framework will automatically try to restart / retry operations from an available savepoint. The number of emitted values before a chunk is sent to the reducers. If your emitted values are big, you might want to change this to a lower value. If you want to better balance your work, you might want to change this to a higher value. A value of 0 means immediate transmission, but remember that low values mean higher traffic costs. A very high value might cause an OutOfMemoryError to occur if emitted values do not fit into heap memory before being sent to reducers. To prevent this, you might want to use a combiner to pre-reduce values on mapping nodes. True if statistics (for example, about processed entries) are transmitted to the job emitter, false otherwise. This might be used to show any kind of progress to users inside of UI systems, but this produces additional traffic. If statistics are not needed, you might want to deactivate this. Defines how the map reduce framework will react on topology changes while executing a job. Currently only CANCEL_RUNNING_OPERATION is fully supported; it throws an exception to the job emitter (throws com.hazelcast.mapreduce.TopologyChangedException). The name of the JobTracker. Required. The thread count to which the concurrent access is limited. For example, if you set it to "3", concurrent access to the object is limited to 3 threads. Number of synchronous backups. For example, if 1 is set as the backup-count, then all permits of the semaphore are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then all permits of the semaphore are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The name of the semaphore. Required. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the lock. Number of items in the ringbuffer. If no time-to-live-seconds is set, the size will always be equal to capacity after the head completed the first loop around the ring. This is because no items are getting retired. The default value is 10000. Maximum number of seconds for each entry to stay in the ringbuffer. Entries that are older than <time-to-live-seconds> and are not updated for <time-to-live-seconds> are automatically evicted from the map. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. Number of synchronous backups. For example, if 1 is set as the backup-count, then the items in the ringbuffer are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the backup-count, then the items in the ringbuffer are copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Data type used to store entries. Possible values: BINARY (default): keys and values are stored as binary data. OBJECT: values are stored in their object forms. Includes the ring buffer store factory class name. The store format is the same as the in-memory-format for the ringbuffer. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The name of the ringbuffer. Required. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The name of the IAtomicLong. Required. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The name of the IAtomicReference. Required. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. The name of the CountDownLatch. Required. While recovering from split-brain (network partitioning), data structure entries in the small cluster merge into the bigger cluster based on the policy set here. When an entry merges into the cluster, an entry with the same key (or value) might already exist in the cluster. The merge policy resolves these conflicts with different out-of-the-box or custom strategies. The out-of-the-box merge polices can be references by their simple class name. For custom merge policies you have to provide a fully qualified class name.

The out-of-the-box policies are:
DiscardMergePolicy: the entry from the smaller cluster will be discarded.
HigherHitsMergePolicy: the entry with the higher number of hits wins.
LatestAccessMergePolicy: the entry with the latest access wins.
LatestUpdateMergePolicy: the entry with the latest update wins.
PassThroughMergePolicy: the entry from the smaller cluster wins.
PutIfAbsentMergePolicy: the entry from the smaller cluster wins if it doesn't exist in the cluster.
The default policy is: PutIfAbsentMergePolicy

Overrides the public address of a node. By default, a node selects its socket address as its public address. But behind a network address translation (NAT), two endpoints (nodes) may not be able to see/access each other. If both nodes set their public addresses to their defined addresses on NAT, then they can communicate with each other. In this case, their public addresses are not an address of a local network interface but a virtual address defined by NAT. This is optional to set and useful when you have a private cloud. The ports which Hazelcast will use to communicate between cluster members. Its default value is 5701. It has the following attributes. port-count: The default value is 100, meaning that Hazelcast will try to bind 100 ports. If you set the value of port as 5701, as members join the cluster, Hazelcast tries to find ports between 5701 and 5801. You can change the port count in cases like having large instances on a single machine or you are willing to have only a few ports assigned. auto-increment: Default value is true. If port is set to 5701, Hazelcast will try to find free ports between 5701 and 5801. Normally, you will not need to change this value, but it comes in handy when needed. You may also want to choose to use only one port. In that case, you can disable the auto-increment feature of port by setting its value as false. When you shutdown a cluster member, the server socket port will be in the TIME_WAIT state for the next couple of minutes. If you start the member right after shutting it down, you may not be able to bind it to the same port because it is in the TIME_WAIT state. If you set reuse-address to true, the TIME_WAIT state is ignored and you can bind the member to the same port again. Default value is false. By default, Hazelcast lets the system pick up an ephemeral port during socket bind operation. But security policies/firewalls may require to restrict outbound ports to be used by Hazelcast-enabled applications. To fulfill this requirement, you can configure Hazelcast to use only defined outbound ports. outbound-ports has the ports attribute to allow you to define outbound ports. encryption algorithm such as DES/ECB/PKCS5Padding, PBEWithMD5AndDES, AES/CBC/PKCS5Padding, Blowfish, DESede IMPORTANT This configuration is not intended to provide addresses of other cluster members with which the hazelcast instance will form a cluster. This is an SPI for advanced use in cases where the DefaultAddressPicker does not pick suitable addresses to bind to and publish to other cluster members. For instance, this could allow easier deployment in some cases when running on Docker, AWS or other cloud environments. That said, if you are just starting with Hazelcast, you will probably want to set the member addresses by using the tcp-ip or multicast configuration or adding a discovery strategy. Member address provider allows to plug in own strategy to customize: 1. What address Hazelcast will bind to 2. What address Hazelcast will advertise to other members on which they can bind to In most environments you don't need to customize this and the default strategy will work just fine. However in some cloud environments the default strategy does not make the right choice and the member address provider delegates the process of address picking to external code. IP address of the required member. Cluster will form only if the member with this IP address is found. IP address(es) of one or more well known members. Once members are connected to these well known ones, all member addresses will be communicated with each other. Comma separated IP addresses of one or more well known members. Specifies whether the TCP/IP discovery is enabled or not. Default value is false. The maximum amount of time Hazelcast is going to try to connect to a well known member before giving up. Setting it to a too low value could mean that a member is not able to connect to a cluster. Setting it to a too high value means that member startup could slow down because of longer timeouts (e.g. when a well known member is not up). Increasing this value is recommended if you have many IPs listed and the members cannot properly build up the cluster. Its default value is 5. The name of the class implementing the com.hazelcast.spi.MemberAddressProvider interface Specifies whether the member address provider SPI is enabled or not. Values can be true or false. The multicast group IP address. Specify it when you want to create clusters within the same network. Values can be between 224.0.0.0 and 239.255.255.255. Default value is 224.2.2.3. The multicast socket port through which the Hazelcast member listens and sends discovery messages. Default value is 54327. Only when the nodes are starting up, this timeout (in seconds) specifies the period during which a node waits for a multicast response from another node. For example, if you set it to 60 seconds, each node will wait for 60 seconds until a leader node is selected. Its default value is 2 seconds. Time-to-live value for multicast packets sent out to control the scope of multicasts. Includes IP addresses of trusted members. When a node wants to join to the cluster, its join request will be rejected if it is not a trusted member. You can give an IP addresses range using the wildcard (*) on the last digit of the IP address (e.g. 192.168.1.* or 192.168.1.100-110). Specifies whether the multicast discovery is enabled or not. Values can be true or false. Access key of your account on EC2. Secret key of your account on EC2. IAM role that binds with your instance. The region where your nodes are running. Default value is us-east-1. Needs to be specified if the region is other than the default one. The URL that is the entry point for a web service. It is optional. Name of the security group you specified at the EC2 management console. It is used to narrow the Hazelcast nodes to be within this group. It is optional. To narrow the members in the cloud down to only Hazelcast nodes, you can set this to the one you specified in the EC2 console. It is optional. To narrow the members in the cloud down to only Hazelcast nodes, you can set this to the one you specified in the EC2 console. It is optional. Specifies whether the EC2 discovery is enabled or not. Value can be true or false. The maximum amount of time Hazelcast is going to try to connect to a well known member before giving up. Setting its value too low value could mean that a member is not able to connect to a cluster. Setting it too high value means that member startup could slow down because of longer timeouts (e.g. when a well known member is not up). Increasing this value is recommended if you have many IPs listed and the members cannot properly build up the cluster. Its default value is 5. The `join` configuration element is used to enable the Hazelcast instances to form a cluster, i.e. to join the members. Three ways can be used to join the members: discovery by TCP/IP, by multicast, and by discovery on AWS (EC2 auto-discovery). You can specify which network interfaces that Hazelcast should use. Servers mostly have more than one network interface, so you may want to list the valid IPs. Range characters ('\*' and '-') can be used for simplicity. For instance, 10.3.10.\* refers to IPs between 10.3.10.0 and 10.3.10.255. Interface 10.3.10.4-18 refers to IPs between 10.3.10.4 and 10.3.10.18 (4 and 18 included). If network interface configuration is enabled (it is disabled by default) and if Hazelcast cannot find an matching interface, then it will print a message on the console and will not start on that node. True to enable these interfaces, false to disable. True (default) if statistics gathering is enabled on the executor task, false otherwise. The number of executor threads per member for the executor. Queue capacity of the executor task. 0 means Integer.MAX_VALUE. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the executor task. The number of executor threads per member for the executor. The durability of the executor Capacity of the executor task per partition. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the durable executor. The number of executor threads per member for the executor. The durability of the scheduled executor. The maximum number of tasks that a scheduler can have at any given point in time per partition. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. Name of the scheduled executor. Number of synchronous backups. For example, if 1 is set as the backup-count, then the cardinality estimation will be copied to one other JVM for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Number of asynchronous backups. For example, if 1 is set as the async-backup-count, then cardinality estimation will be copied to one other JVM (asynchronously) for fail-safety. Valid numbers are 0 (no backup), 1, 2 ... 6. Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. While recovering from split-brain (network partitioning), CardinalityEstimator in the small cluster merge into the bigger cluster based on the policy set here. When an estimator merges into the cluster, an estimator with the same name might already exist in the cluster. The merge policy resolves these conflicts with different out-of-the-box strategies. The out-of-the-box merge polices can be references by their simple class name.

The out-of-the-box policies are:
DiscardMergePolicy: the estimator from the smaller cluster will be discarded.
HyperLogLogMergePolicy: the estimator will merge with the existing one, using the algorithmic merge for HyperLogLog.
PassThroughMergePolicy: the estimator from the smaller cluster wins.
PutIfAbsentMergePolicy: the estimator from the smaller cluster wins if it doesn't exist in the cluster.
The default policy is: HyperLogLogMergePolicy

Name of the cardinality estimator.
Enterprise only. Hazelcast allows you to encrypt the entire socket level communication among all Hazelcast members. Encryption is based on Java Cryptography Architecture. In symmetric encryption, each node uses the same key, so the key is shared. Encryption algorithm such as DES/ECB/PKCS5Padding, PBEWithMD5AndDES, Blowfish, or DESede. Salt value to use when generating the secret key. Pass phrase to use when generating the secret key. Iteration count to use when generating the secret key. True to enable symmetric encryption, false to disable. ICMP can be used in addition to the other detectors. It operates at layer 3 detects network and hardware issues more quickly Timeout in Milliseconds before declaring a failed ping Maximum number of times the IP Datagram (ping) can be forwarded, in most cases all Hazelcast cluster members would be within one network switch/router therefore default of 0 is usually sufficient Run ICMP detection in parallel with the Heartbeat failure detector Cluster Member will fail to start if it is unable to action an ICMP ping command when ICMP is enabled. Failure is usually due to OS level restrictions. Maximum number of consecutive failed attempts before declaring a member suspect Time in milliseconds between each ICMP ping Enables ICMP Pings to detect and suspect dead members The name of the class implementing MapLoader and/or MapStore. The number of seconds to delay the store writes. Default value is 0. The number of operations to be included in each batch processing round. Default value is 1. Setting this is meaningful if you are using write behind in MapStore. When write-coalescing is true, only the latest store operation on a key in the write-delay-seconds time-window will be reflected to MapStore. Default value is true. True to enable this map-store, false to disable. Sets the initial load mode. LAZY: default load mode, where load is asynchronous. EAGER: load is blocked till all partitions are loaded. True to enable value caching, false to disable. The predicate to filter events which will be applied to the QueryCache. Lets you add listeners (listener classes) for the query cache entries. Data type used to store entries. Possible values: BINARY (default): keys and values are stored as binary data. OBJECT: values are stored in their object forms. NATIVE: keys and values are stored in native memory. Only available on Hazelcast Enterprise. True to enable initial population of the query cache, false otherwise. True to enable coalescing of the query cache, false otherwise. The minimum number of seconds that an event waits in the node buffer. The batch size used to determine the number of events sent in a batch to the query cache. The maximum number of events which can be stored in a partition buffer. Name for your WAN replication configuration. Fully qualified class name of WAN Replication implementation implementing WanReplicationEndpoint. Hazelcast Enterprise comes with com.hazelcast.enterprise.wan.replication.WanBatchReplication: Waits until a batch size is reached or a delay time is passed. The group name of target WAN cluster Name of the custom class implementation that is responsible for incoming WAN events. The name of the com.hazelcast.nio.ssl.SSLContextFactory implementation class. True to enable this ssl configuration, false to disable. The name of the com.hazelcast.nio.ssl.SSLContextFactory implementation class. True to enable this mutual-auth configuration, false to disable. When you enable partition grouping, Hazelcast presents three choices for you to configure partition groups. HOST_AWARE: You can group nodes automatically using the IP addresses of nodes, so nodes sharing the same network interface will be grouped together. All members on the same host (IP address or domain name) will be a single partition group. CUSTOM: You can do custom grouping using Hazelcast's interface matching configuration. This way, you can add different and multiple interfaces to a group. PER_MEMBER: You can give every member its own group. Each member is a group of its own and primary and backup partitions are distributed randomly (not on the same physical member). Management Center endpoint/URL. True to enable management center, false to disable. The time frequency (in seconds) for which Management Center will take information from the Hazelcast cluster. Name of the service to be registered. Name of the class that you develop for your service. The custom properties that you can add to your service. You enable/disable these properties and set their values using this element. You can include configuration items which you develop using the Config object in your code. Block or allow actions, submitted as tasks in an Executor from clients and have no permission mappings. true: Blocks all actions that have no permission mapping false: Allows all actions that have no permission mapping Endpoint address of the principal. Wildcards(*) can be used. Name of the principal. Wildcards(*) can be used. Name of the permission. Wildcards(*) can be used. Permission actions that are permitted on Hazelcast instance objects. Name of the group to be created. Password of the group to be created. One of the following: membership-listener, instance-listener, migration-listener or partition-lost-listener. Data type used to store entries. Possible values: BINARY (default): keys and values are stored as binary data. OBJECT: values are stored in their object forms. NATIVE: keys and values are stored in native memory. Only available on Hazelcast Enterprise. Defines if the Near Cache keys should be serialized or not. Keys should be serialized if they are mutable and need to be cloned via serialization. NOTE: It's not supported to disable key serialization with in-memory-format NATIVE. This setting will have no effect in that case. Default value is false. True to evict the cached entries if the entries are changed (updated or removed). Default value is true. Maximum number of seconds for each entry to stay in the Near Cache. Entries that are older than time-to-live-seconds will get automatically evicted from the Near Cache. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. Maximum number of seconds each entry can stay in the Near Cache as untouched (not-read). Entries that are not read (touched) more than max-idle-seconds value will get removed from the Near Cache. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Valid values are: NONE (no extra eviction, time-to-live-seconds may still apply), LRU (Least Recently Used), LFU (Least Frequently Used). LRU is the default. Regardless of the eviction policy used, time-to-live-seconds will still apply. Deprecated since 3.8, please use <eviction/> Maximum size of the Near Cache. When max size is reached, cache is evicted based on the policy defined. Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0. Deprecated since 3.8, please use <eviction/> True to cache local entries, which belong to the member itself. This is useful when in-memory-format for Near Cache is different than the map's one. Default value is false. The version of the portable serialization. Portable version is used to differentiate two same classes that have changes on it like adding/removing field or changing a type of a field. True to use native byte order of the underlying platform, false otherwise. Default value is false. Defines the byte order that the serialization will use. True to enable compression if default Java serialization is used, false otherwise. Default value is false. True to enable shared object if default Java serialization is used, false otherwise. Default value is false. True to allow the usage of unsafe, false otherwise. Default value is false. Custom classes implementing com.hazelcast.nio.serialization.DataSerializableFactory to be registered. These can be used to speed up serialization/deserialization of objects. PortableFactory class to be registered. Global serializer class to be registered if no other serializer is applicable. Defines the class name and the type class of the serializer implementation. If true (default), serialization system will check class definitions error at start and throw a Serialization Exception with error definition. The name of the class that will be serialized. The type of the class that will be serialized. Java Serializable and Externalizable is prior to global serializer by default. If set true the Java serialization step assumed to be handled by the global serializer. A full list of available properties can be found at http://docs.hazelcast.org/docs/latest/manual/html-single/index.html#system-properties Resolve conflicts that occurred when target cluster already has the replicated entry key. 4 merge policy implementations for IMap and 2 merge policy implementations for ICache are provided out-of-the-box. IMap has the following merge policies: com.hazelcast.map.merge.PutIfAbsentMapMergePolicy: Incoming entry merges from the source map to the target map if it does not exist in the target map. com.hazelcast.map.merge.HigherHitsMapMergePolicy: Incoming entry merges from the source map to the target map if the source entry has more hits than the target one. com.hazelcast.map.merge.PassThroughMergePolicy: Incoming entry merges from the source map to the target map unless the incoming entry is not null. com.hazelcast.map.merge.LatestUpdateMapMergePolicy: Incoming entry merges from the source map to the target map if the source entry has been updated more recently than the target entry. Please note that this merge policy can only be used when the clusters' clocks are in sync. ICache has the following merge policies: com.hazelcast.cache.merge.HigherHitsCacheMergePolicy: Incoming entry merges from the source cache to the target cache if the source entry has more hits than the target one. com.hazelcast.cache.merge.PassThroughCacheMergePolicy: Incoming entry merges from the source cache to the target cache unless the incoming entry is not null. When enabled, an incoming event to a member is forwarded to the target cluster of that member. Name of the wan-replication configuration. IMap or ICache instance uses this wan-replication config. The minimum number of members required in a cluster for the cluster to remain in an operational state. If the number of members is below the defined minimum at any time, the operations are rejected and the rejected operations throw a QuorumException to their callers. You can register quorum listeners to be notified about quorum results. Quorum listeners are local to the member that they are registered, so they receive only events occurred on that local member. Determines quorum based on the number of currently live cluster members. The minimum number of members required in a cluster for the cluster to remain in an operational state is configured separately in <quorum-size> element. If the number of members is below the defined minimum at any time, the operations are rejected and the rejected operations throw a QuorumException to their callers. A probabilistic quorum function based on Phi Accrual failure detector. See com.hazelcast.internal.cluster.fd.PhiAccrualClusterFailureDetector for implementation details. Configuration:
- acceptable-heartbeat-pause-millis: duration in milliseconds corresponding to number of potentially lost/delayed heartbeats that will be accepted before considering it to be an anomaly. This margin is important to be able to survive sudden, occasional, pauses in heartbeat arrivals, due to for example garbage collection or network drops.
- suspicion-threshold: threshold for suspicion level. A low threshold is prone to generate many wrong suspicions but ensures a quick detection in the event of a real crash. Conversely, a high threshold generates fewer mistakes but needs more time to detect actual crashes.
- max-sample-size: number of samples to use for calculation of mean and standard deviation of inter-arrival times.
- heartbeat-interval-millis: bootstrap the stats with heartbeats that corresponds to this duration in milliseconds, with a rather high standard deviation (since environment is unknown in the beginning)
- min-std-deviation-millis: minimum standard deviation (in milliseconds) to use for the normal distribution used when calculating phi. Too low standard deviation might result in too much sensitivity for sudden, but normal, deviations in heartbeat inter arrival times.
A quorum function that keeps track of the last heartbeat timestamp per each member. For a member to be considered live (for the purpose of determining presence of quorum), a heartbeat must have been received at most heartbeat-tolerance milliseconds before current time. True to set the node as a lite member, false otherwise. Controls caching of user classes loaded from remote members. OFF: Never caches loaded classes. This is suitable for loading runnables, callables, entry processors, etc. ETERNAL: Cache indefinitely. This is suitable when you load long-living objects, such as domain objects stored in a map. Controls how to react on receiving a classloading request from a remote member OFF: Never serve classes to other members. This member will never server classes to remote members. LOCAL_CLASSES_ONLY: Serve classes from local classpath only. Classes loaded from other members will be used locally, but they won't be served to other members. LOCAL_AND_CACHED_CLASSES: Server classes loaded from both local classpath and from other members. Filter to constraint members to be used for classloading request when a class is not available locally. Command separated list of prefixes of classes which will be loaded remotely. Use this to enable loading of explicitly selected user classes only and disable remote loading for all other classes. This gives you a fine-grained control over classloading. Filter to constraint members to be used for classloading request when a class is not available locally. Filter format: HAS_ATTRIBUTE:foo this will send classloading requests only to members which has a member attribute foo set. Value is ignored, it can be any type. A present of the attribute is sufficient. This facility allows to have a control on classloading. You can e.g. start Hazelcast lite members dedicated for class-serving. Setting the filter to null will allow to load classes from all members. True to enable User Code Deployment on this member, false otherwise. Base directory for all hot-restart data. Can be an absolute or relative path to the node startup directory. Base directory for hot backups. Each new backup will be created in a separate directory inside this one. Can be an absolute or relative path to the node startup directory. Level of parallelism in Hot Restart Persistence. There will be this many IO threads, each writing in parallel to its own files. During the Hot Restart procedure, this many IO threads will be reading the files and this many Rebuilder threads will be rebuilding the HR metadata. Validation timeout for the Hot Restart procedure. Includes the time to validate cluster members expected to join and partition table of the whole cluster. Data load timeout for Hot Restart procedure. All members in the cluster should complete restoring their local data before this timeout. Specifies the policy that will be respected during hot restart cluster start. Valid values are : FULL_RECOVERY_ONLY : Starts the cluster only when all expected nodes are present and correct. Otherwise, it fails. PARTIAL_RECOVERY_MOST_RECENT : Starts the cluster with the members which have most up-to-date partition table and successfully restored their data. All other members will leave the cluster and force-start themselves. If no member restores its data successfully, cluster start fails. PARTIAL_RECOVERY_MOST_COMPLETE : Starts the cluster with the largest group of members which have the same partition table version and successfully restored their data. All other members will leave the cluster and force-start themselves. If no member restores its data successfully, cluster start fails. True to enable Hot Restart Persistence, false otherwise. The period between two replications of CRDT states in milliseconds. A lower value will increase the speed at which changes are disseminated to other cluster members at the expense of burst-like behaviour - less updates will be batched together in one replication message and one update to a CRDT may cause a sudden burst of replication messages in a short time interval. The value must be a positive non-null integer. The maximum number of target members that we replicate the CRDT states to in one period. A higher count will lead to states being disseminated more rapidly at the expense of burst-like behaviour - one update to a CRDT will lead to a sudden burst in the number of replication messages in a short time interval. If set to true, when each update operation on this structure completes, it is guaranteed that it has already been persisted. True if Hot Restart Persistence is enabled, false otherwise. Only available on Hazelcast Enterprise. Configuration for an event journal. The event journal keeps events related to a specific partition and data structure. For instance, it could keep map or cache add, update, remove, merge events along with the key, old value, new value and so on. This configuration is not tied to a specific data structure and can be reused. The name of the map to which this config applies. The name of the cache to which this config applies. The capacity of the event journal. The capacity is the total number of items that the event journal can hold at any moment. The actual number of items contained in the journal can be lower. Its default value is 10000. The capacity is shared equally between all partitions. This is done by assigning each partition {@code getCapacity() / partitionCount} available slots in the event journal. Because of this, the effective total capacity may be somewhat lower and you must take into account that the configured capacity is at least greater than the partition count. Maximum number of seconds for each entry to stay in the event journal. Entries that are older than <time-to-live-seconds> are evicted from the journal. Any integer between 0 and Integer.MAX_VALUE. 0 means infinite. Default is 0. True if the event journal is enabled, false otherwise. Sets how many IDs are pre-fetched on the background when one call to FlakeIdGenerator.newId() is made. Value must be in the range 1..100,000, default is 100. This setting pertains only to newId() calls made on the member that configured it. Sets for how long the pre-fetched IDs can be used. If this time elapses, a new batch of IDs will be fetched. Time unit is milliseconds, default is 600,000 (10 minutes). The IDs contain timestamp component, which ensures rough global ordering of IDs. If an ID is assigned to an object that was created much later, it will be much out of order. If you don't care about ordering, set this value to 0. This setting pertains only to newId() calls made on the member that configured it. Sets the offset that will be added to the returned IDs. Default value is 0. Setting might be useful when migrating from IdGenerator, default value works for all green-field projects. For example: Largest ID returned from IdGenerator is 150. FlakeIdGenerator now returns 100. If you configure idOffset of 50 and stop using the IdGenerator, the next ID from FlakeIdGenerator will be 151 or larger and no duplicate IDs will be generated. In real-life, the IDs are much larger. You also need to add a reserve to the offset because the IDs from FlakeIdGenerator are only roughly ordered. Recommended reserve is 2^38, that is 274877906944. Negative values are allowed to increase the lifespan of the generator, however keep in mind that the generated IDs might also be negative. Sets the offset that will be added to the node ID assigned to cluster member for this generator. Might be useful in A/B deployment scenarios where you have cluster A which you want to upgrade. You create cluster B and for some time both will generate IDs and you want to have them unique. In this case, configure node ID offset for generators on cluster B. True (default) if statistics gathering is enabled on the Flake ID Generator, false otherwise. Name of the ID generator. Number of replicas on which the CRDT state will be kept. The updates are replicated asynchronously between replicas. The number must be greater than 1 and up to 2147483647 (Integer.MAX_VALUE). The default value is 2147483647 (Integer.MAX_VALUE). Adds the Split Brain Protection for this data-structure which you configure using the quorum element. You should set the quorum-ref's value as the quorum's name. IMPORTANT: The term "quorum" simply refers to the count of members in the cluster required for an operation to succeed. It does NOT refer to an implementation of Paxos or Raft protocols as used in many NoSQL and distributed systems. The mechanism it provides in Hazelcast protects the user in case the number of nodes in a cluster drops below the specified one. True (default) if statistics gathering is enabled on the PN counter, false otherwise. Name of the PN counter.