Hekate FST Codec

Java library for cluster communications and computing.

License

License

Categories

Categories

FST Data Data Formats Serialization
GroupId

GroupId

io.hekate
ArtifactId

ArtifactId

hekate-codec-fst
Last Version

Last Version

4.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

Hekate FST Codec
Java library for cluster communications and computing.
Project URL

Project URL

https://github.com/hekate-io/hekate
Project Organization

Project Organization

The Hekate Project
Source Code Management

Source Code Management

https://github.com/hekate-io/hekate

Download hekate-codec-fst

How to add to project

<!-- https://jarcasting.com/artifacts/io.hekate/hekate-codec-fst/ -->
<dependency>
    <groupId>io.hekate</groupId>
    <artifactId>hekate-codec-fst</artifactId>
    <version>4.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/io.hekate/hekate-codec-fst/
implementation 'io.hekate:hekate-codec-fst:4.0.0'
// https://jarcasting.com/artifacts/io.hekate/hekate-codec-fst/
implementation ("io.hekate:hekate-codec-fst:4.0.0")
'io.hekate:hekate-codec-fst:jar:4.0.0'
<dependency org="io.hekate" name="hekate-codec-fst" rev="4.0.0">
  <artifact name="hekate-codec-fst" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.hekate', module='hekate-codec-fst', version='4.0.0')
)
libraryDependencies += "io.hekate" % "hekate-codec-fst" % "4.0.0"
[io.hekate/hekate-codec-fst "4.0.0"]

Dependencies

compile (2)

Group / Artifact Type Version
io.hekate : hekate-core jar 4.0.0
de.ruedigermoeller : fst jar 2.57

Project Modules

There are no modules declared in this project.

Hekate.io

Java Library for Distributed Services

build codecov Maven Central Javadocs

License

Open source Apache License v2.0

Features

  • Distributed Service Discovery

    • Decentralized Service Discovery (based on performance-optimized Gossip protocol)
    • Easy integration into existing infrastructure
    • User-defined Service Properties and Roles
    • Cluster Event Listeners
    • Service Topology Views and Filtering APIs
    • Health Monitoring and Split-brain Detection
  • Messaging

    • Synchronous and Asynchronous Messaging (backed by Netty)
    • Cluster-aware Load Balancing and Routing
    • SSL/TLS Encryption of Network Communications (optional)
    • Back Pressure Policies
    • Error Retry Policies
    • Pluggable Serialization
  • Remote Procedure Calls (RPC)

    • Type-safe Invocation of Remote Java Services
    • Automatic Discovery and Load Balancing
    • Synchronous and Asynchronous APIs
    • Multi-node Broadcasting and Aggregation of Results
    • Back Pressure Policies
    • Error Retry Policies
    • ...and everything from the "Messaging" section above:)
  • Cluster-wide Singleton Service (aka Leader Election )

    • Decentralized Leader Election
    • Followers are Aware of the Current Leader
    • Leader can Dynamically Yield Leadership
  • Distributed Locks

    • Synchronous and Asynchronous Reentrant Locks
    • Decentralized Lock Management
    • Configurable Lock Groups (aka Lock Regions)
  • Spring Boot/Framework Support (optional)

  • Metrics

  • Raft-based Replicated State Machines (planned)

Documentation

Code Examples

Quickstart for Standalone Java Application

public class MyApplication{
    public static void main(String[] args) throws Exception {
        Hekate hekate = new HekateBootstrap()
            .withNamespace("my-cluster")
            .withNodeName("my-node")
            .join();
        
        System.out.println("Cluster topology: " + hekate.cluster().topology());
    }
}

Quickstart for Spring Boot Application

@EnableHekate // <-- Enable Hekate integration.
@SpringBootApplication
public class MyApplication {
    @Autowired
    private Hekate hekate;

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
    
    @PostConstruct
    public void start(){
        System.out.println("Cluster topology: " + hekate.cluster().topology());
    }
}

More Examples:

Please see the hekate-io/hekate-examples project for more examples.

Maven artifacts

  • For projects based on Spring Boot:
<dependency>
    <groupId>io.hekate</groupId>
    <artifactId>hekate-spring-boot</artifactId>
    <version>4.0.0</version>
</dependency>
  • For projects based on Spring Framework:
<dependency>
    <groupId>io.hekate</groupId>
    <artifactId>hekate-spring</artifactId>
    <version>4.0.0</version>
</dependency>
  • For standalone applications:
<dependency>
    <groupId>io.hekate</groupId>
    <artifactId>hekate-core</artifactId>
    <version>4.0.0</version>
</dependency>

How to build

Software requirements:

  • Latest stable Java SDK (8+)
  • Latest stable Docker (required for tests only)

Build (no tests):

  • cd to the project's root folder
  • run ./mvnw clean package -DskipTests=true

Build (with tests):

  • cd to the project's root folder
  • make a copy of test.properties file with name my_test.properties
  • edit my_test.properties according to your environment
  • run docker-compose up -d to prepare Docker-based testing infrastructure
  • run ./mvnw clean package

Release History

io.hekate

hekate.io

Versions

Version
4.0.0
3.11.0
3.10.0
3.9.0
3.8.0
3.7.0
3.6.0
3.5.0
3.4.1
3.4.0
3.3.0
3.2.0
3.1.0
3.0.0
2.6.0
2.5.0
1.0.2
1.0.1
1.0.0