Skip to content

synadia-io/orbit.java

Repository files navigation

Orbit

Orbit.java is a set of independent utilities or extensions around the JNATS ecosystem that aims to boost productivity and provide a higher abstraction layer for the JNATS client. Note that these libraries will evolve rapidly and API guarantees are general not made until the specific project has a v1.0.0 version.

Utilities

Retrier

Extension for retrying anything.

Current Release: 0.2.1   Current Snapshot: 0.2.2-SNAPSHOT

README Artifact javadoc Maven Central

Jetstream Publish Extensions

General extensions for Jetstream Publishing

Current Release: 0.4.3   Current Snapshot: 0.4.3-SNAPSHOT

README Artifact javadoc Maven Central

Request Many

Extension to get many responses for a single core request.

Current Release: 0.1.0   Current Snapshot: 0.1.1-SNAPSHOT

README Artifact javadoc Maven Central

Encoded KeyValue

Extension over Key Value to allow custom encoding of keys and values.

Current Release: 0.0.1   Current Snapshot: 0.0.2-SNAPSHOT

README Artifact javadoc Maven Central

Direct Batch

The direct batch functionality leverages the direct message capabilities introduced in NATS Server v2.11. The functionality is described in ADR-31

Current Release: 0.1.3  Current Snapshot: 0.1.4-SNAPSHOT

README Artifact javadoc Maven Central

Chaos Runner

Run some NATS servers and cause chaos by bringing them up and down.

Current Release: 0.0.3   Current Snapshot: 0.0.4-SNAPSHOT

README Artifact javadoc Maven Central

Batch Publish

Utility to publish an atomic batch, a group of up to 1000 messages

Current Release: 0.2.0  Current Snapshot: 0.2.1-SNAPSHOT

README Artifact javadoc Maven Central

JetStream Distributed Counters CRDT

Utility to take advantage of the distributed counter functionality.

Current Release: 0.1.0   Current Snapshot: 0.1.1-SNAPSHOT

README Artifact javadoc Maven Central

JetStream Scheduled Message

Utility to leverage the ability to schedule a message to be published at a later time. Eventually the ability to schedule a message to publish based on a cron or schedule.

Current Release: 0.0.1   Current Snapshot: 0.0.2-SNAPSHOT

README Artifact javadoc Maven Central

Dependencies

Gradle

The libraries are available in the Maven central repository, and can be imported as a standard dependency in your build.gradle file:

dependencies {
    implementation 'io.synadia:{artifact}:{major.minor.patch}'
}

Releases are available at Maven Central:

repositories {
    mavenCentral()
}

If you need a snapshot version, you must add the url for the snapshots.

repositories {
    mavenCentral()
    maven {
        url "https://central.sonatype.com/repository/maven-snapshots/"
    }
}

dependencies {
   implementation 'io.synadia:{artifact}:{major.minor.patch}-SNAPSHOT'
}

Maven

The libraries are available on the Maven central repository, and can be imported as a normal dependency in your pom.xml file:

<dependency>
    <groupId>io.synadia</groupId>
    <artifactId>{artifact}</artifactId>
    <version>{major.minor.patch}</version>
</dependency>

Releases are available at Maven Central. If you need a snapshot version, you must enable snapshots and change your dependency.

<repositories>
    <repository>
        <name>Central Portal Snapshots</name>
        <id>central-portal-snapshots</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<dependency>
    <groupId>io.synadia</groupId>
    <artifactId>{artifact}</artifactId>
    <version>{major.minor.patch}-SNAPSHOT</version>
</dependency>

Notes

If you are importing the source code from this repo, please be aware that each project is its own library. Some projects have classes with the same name, but each project is completely independent on another, except if one specifically depends on another. For example, the publish extensions depends on retrier, but it includes the library via gradle, not the source code.