hazelcast / hazelcast-platform-demos

hazelcast-platform-demos

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hazelcast Platform Demo Applications

Demonstration applications for the Hazelcast Platform, the combination of streaming analytics and in-memory data.

Demos

  1. Banking
  1. Benchmark
  • NEXMark Processing billions of events per second
  1. Industry 4.0
  • IIOT Predictive maintenance for plant machinery
  1. Machine Learning
  • RI Reference Implementation for Machine Learning Inference, minimal dependencies.
  1. Retail
  1. Telco
  • Churn Uses ML to predict customer churn
  1. Travel
  • Booking Integrated travel booking for accommodation and transport

Also

  1. Utils
  • Utils Utillity modules for the above projects to share.

Build Instructions

settings.xml

Projects that use commercial features require a license key to operate.

Register here to request the license key you need.

Once you have the license key you need, create a settings.xml in your .m2 folder. Copy the example below, and replace the property value. Maven will read this file when you build and apply the value in your build.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers/>
  <profiles>
    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <my.license.key>GOES HERE</my.license.key>

        <my.slack.bot.user.oath.access.token>GOES HERE</my.slack.bot.user.oath.access.token>
        <my.slack.bot.channel.name>GOES HERE</my.slack.bot.channel.name>
        <my.slack.bot.channel.id>GOES HERE</my.slack.bot.channel.id>

        <my.hz.cloud.cluster1.id>GOES HERE</my.hz.cloud.cluster1.id>
        <my.hz.cloud.cluster1.discovery.token>GOES HERE</my.hz.cloud.cluster1.discovery.token>
        <my.hz.cloud.cluster1.keys.location>GOES HERE</my.hz.cloud.cluster1.keys.location>
        <my.hz.cloud.cluster1.key.password>GOES HERE</my.hz.cloud.cluster1.key.password>
        <my.hz.cloud.api.key>GOES HERE</my.hz.cloud.api.key>
        <my.hz.cloud.api.secret>GOES HERE</my.hz.cloud.api.secret>
      </properties>
    </profile>
  </profiles>
</settings>

NOTE: If you don't have a value for a setting, it is better to delete the line and allow the default value to be used. If you leave it blank (e.g. <my.something></my.something>) then an empty string will be used instead of the default, which might cause problems.

There are three groups of properties: licensing, Slack and Hazelcast Cloud. All are optional.

Licensing settings

Some of the demos use Hazelcast Enterprise, and some can optionally use Hazelcast Enterprise.

If you want to run these, contact Hazelcast here to obtain a trial license key.

Once provided, put the value in the <my.license.key> setting and build.

Slack settings

Some of the demos interact with the Slack team communication tool, for sending and receiving messages.

If you have Slack and wish to use this feature, you need three settings.

<my.slack.bot.user.oath.access.token> is the OAuth access token that allows Hazelcast to connect to your Slack instance. Refer to the Slack documentation for registering a bot and obtaining such a token.

<my.slack.bot.channel.name> and my.slack.bot.channel.id are the name and Id of the Slack channel that Hazelcast will interact with.

Hazelcast Cloud settings

Some of the demos can run the Hazelcast server code on Hazelcast Cloud or on a Hazelcast instance that you host.

Activation

To build for Hazelcast Cloud, set the property use.hz.cloud to true in the top-level pom.xml.

Properties

If you wish to use a managed Hazelcast instance, sign-up for Hazelcast Cloud and create a cluster.

This needs 6 properties.

For the first four, you can find them on the cluster list page here, and then select the cluster you want.

From there, the easiest way is to click on the "Connect Client" button, then the "Advanced Set-up" tab.

<my.hz.cloud.cluster1.id> is the id of the cluster you create on Hazelcast Cloud. This is the name internally allocated, and will be something like pr-1234.

<my.hz.cloud.cluster1.discovery.token> is the counterpart to the ID, to enable the cluster to be found in the cloud.

On the "Advanced Set-up" tab, you should download the keystore files and put them somewhere suitable.

<my.hz.cloud.cluster1.keys.location> specifies the location where you have placed the keystore files. It might have a value such as /home/myname/keys/hzcloud_1234_keys. The build script will copy files from this directory into the Docker images it builds.

<my.hz.cloud.cluster1.key.password> is the password shown on "Advanced Set-up" for the keystore and truststore. The same password is currently used for both.

Finally <my.hz.cloud.api.key> and <my.hz.cloud.api.secret> are used for automated upload of Maven artifacts to Hazelcast Cloud. You can create API access here.

You may have several Hazelcast Cloud clusters (my.hz.cloud.cluster1.id, my.hz.cloud.cluster2.id, etc) but the same API is used for all.

docker-maven-plugin

If building Docker images (activated by mvn install -Prelease), not all properties are needed.

As per above, my.hz.cloud.cluster1.discovery.token can be set, omitted but not null. (docker-maven-plugin)[https://dmp.fabric8.io/] rejects empty string as a null value.

So do not have this in your settings.xml:

        <my.hz.cloud.cluster1.discovery.token></my.hz.cloud.cluster1.discovery.token>

Omit the line if you have no token.

3rd Party Software

These demos use the following 3rd party software. Please ensure their licensing models meet your needs.

  1. Trade Monitor

About

hazelcast-platform-demos


Languages

Language:Java 60.8%Language:C++ 22.3%Language:Shell 4.8%Language:JavaScript 4.7%Language:Dockerfile 3.0%Language:Python 1.6%Language:C 0.8%Language:CSS 0.7%Language:HTML 0.4%Language:C# 0.4%Language:Go 0.3%Language:TypeScript 0.2%Language:CMake 0.1%