Hazelcast Jet Enterprise Readme
===============================

Table of Contents
-----------------

*  [About Hazelcast Jet](#about-hazelcast-jet)
*  [What's Included](#whats-included)
*  [Getting Started with Jet Enterprise](#getting-started-with-hazelcast-jet-enterprise)
*  [Demos](#demos)
*  [Connectors](#connectors)
*  [Hazelcast Plugins](#hazelcast-plugins)
*  [Training, Tutorials and Events](#training-tutorials-and-events)
*  [Hazelcast Community](#hazelcast-community)
*  [Support](#support)

About Hazelcast Jet
-------------------

Hazelcast Jet is a distributed data processing engine built for 
high-performance and low-latency stream processing and fast batch
processing. It embeds Hazelcast In-Memory Data Grid (IMDG) to
provide a lightweight package for data processing and a 
scalable in-memory storage layer.

Visit [jet.hazelcast.org](http://jet.hazelcast.org) to learn more
about its architecture, features and use-cases.

What's Included
---------------

### /config    

* `hazelcast.xml`: the configuration file for embedded Hazelcast IMDG cluster.
* `hazelcast-jet.xml`: the configuration file for Hazelcast Jet cluster.

### /bin

* `jet-start.sh / jet-start.bat`: Starts a new Hazelcast Jet member
* `jet-stop.sh / jet-stop.bat`: Stops all running Hazelcast Jet members on
local machine
* `jet-submit.sh / jet-submit.bat`: Utility for submitting jobs to Jet cluster
* `cluster.sh`: Provides basic functionality for cluster management such 
as getting and changing the cluster state, shutting down the cluster or
forcing the cluster to clean its persisted data and make a fresh start.

### /docs

* `/javadoc`: Hazelcast Jet Javadocs
* `/manual`: A copy of the Hazelcast Jet Reference Manual

### /lib
    
* `hazelcast-jet-enterprise.jar`: The main Hazelcast Jet Enterprise JAR.
* `hazelcast-jet-avro.jar`: A connector for reading and writing Avro files.
* `hazelcast-jet-hadoop.jar`: The Hadoop connector allowing reading from
and writing to HDFS.
* `hazelcast-jet-kafka.jar`: The Kafka connector for reading from and
writing to Apache Kafka topics.
* `hazelcast-jet-spring.jar`: A module which provides convenience for integrating
Jet into Spring applications.
* `hazelcast-jet-hadoop.jar`: The S3 connector allowing reading from and
 writing to Amazon AWS S3 Object Storage.

### /license
    
* `enterprise-license.txt`: Hazelcast Jet Enterprise willicense.

### Other

* `changelog.txt`: The log of changes among Hazelcast Jet releases.
* `release_notes.txt`: Lists the new features, enhancements and fixes for
this Hazelcast Jet release.

Getting Started with Hazelcast Jet Enterprise
---------------------------------------------

### License Key Configuration

The use of Hazelcast Jet Enterprise requires a valid Jet Enterprise 
License Key. The license key can be configured using one of the following
methods:

#### Using config file

Replace the value for the `<license-key>` tag inside the `hazelcast.xml` 
file in the config folder:

```
  <hazelcast ..>
      ...
      <license-key>ENTER LICENSE KEY HERE</license-key>
      ...
  </hazelcast>
```

#### Using programmatic configuration

License key also can be set in the Jet config object as follows:

```
JetConfig config = new JetConfig();
config.getHazelcastConfig().setLicenseKey( "Your Enterprise License Key" );
```

#### Using system property

Set the following system property:

```
-Dhazelcast.enterprise.license.key=Your Enterprise License Key
```

### Getting Started

Go through the [online Getting Started guide](http://jet.hazelcast.org/getting-started/) 
to get Hazelcast Jet up and running. It includes the tutorials to
guide you through building your first Hazelcast Jet application
and running your cluster.

### Configuring TLS

It's possible to use TLS with Hazelcast Jet Enterprise to ensure that all node to node
and node to client communications are encrypted.  To learn more about how to configure TLS, have a look at the 
[Hazelcast Reference Manual](http://docs.hazelcast.org/docs/3.10.3/manual/html-single/index.html#tlsssl).

Keep in mind that TLS also has some
overhead and can cause some performance impact. For minimum performance impact OpenSSL
should be used. For more guidance on TLS performance, please see the section
[TLS/SSL Performance Improvements for Java](http://docs.hazelcast.org/docs/3.10.3/manual/html-single/index.html#tls-ssl-performance-improvements-for-java) 

### Other security features

For other security features such as JAAS, refer to the [Hazelcast Reference Manual,
Security section](http://docs.hazelcast.org/docs/3.10.3/manual/html-single/index.html#security)

Demos
-----

Demos are designed to showcase some of the use cases which are
possible using Hazelcast Jet. Each is a full application and 
demonstrates how you can use Jet to solve real-world problems.
Please see the [Demos page](https://jet.hazelcast.org/demos/).

For smaller, feature specific samples see 
[Hazelcast Jet Code Samples](https://github.com/hazelcast/hazelcast-jet-code-samples).

Some of the demos include:

* **Worldwide Commercial Aircraft Traffic Analysis**: An application which 
streams airplane locations and based on this data aggregates noise
and pollution amounts over selected airports.
* **Twitter Stream Cryptocurrency Sentiment Analysis**: An application
which uses the Twitter Streaming API and sentiment analysis to detect 
current trends around cryptocurrencies.
* **Real-Time Road Traffic Analysis**: Continuously computes linear 
regression models from current traffic. Uses the trend from week ago
to predict the traffic now.

Connectors
----------

Hazelcast Jet contains a library of connectors enabling Jet jobs to
read from and write to various sources and sinks. Please see
[Connectors page](https://jet.hazelcast.org/connectors/) to learn 
about Jet plugins.

Hazelcast Plugins
-----------------

You can extend the functionality of Hazelcast Jet by adding its
plugins. Please see the [Plugins page](http://hazelcast.org/plugins/)
to learn about Hazelcast plugins you can use.

Training, Tutorials and Events
------------------------------

* [jet.hazelcast.org/learn](http://jet.hazelcast.org/learn/) is the hub
for online training, tutorials and learning resources.
* [hazelcast.com/events](http://hazelcast.com/events/) will connect you
with live training classes, user groups, meetups and events.

Hazelcast Community
-------------------

Get your questions answered and share your knowledge on
[Stack Overflow](http://stackoverflow.com/questions/tagged/hazelcast-jet)
and our [Google Group](https://groups.google.com/forum/#!forum/hazelcast-jet).

Support
-------

For information on professional support subscriptions, please visit
[Jet Professional Support](https://hazelcast.com/products/jet/professional-support/)
page.