Skip to content

seanmrogers/forklift

 
 

Repository files navigation

Forklift

The Enterprise Service Bus that supports building and deploying microservices quickly and easily. Forklift makes your life easier by providing common functionality that can be shared by easily by annotating your code. To see what it can do for you check out the full documentation.

Releases

  • August 31st 2017 - v2.1

    • Removed limit on the size of the core thread pool for consumer polling threads

  • June 2nd 2017 - v2.0

    • Moved core source annotations from the "forklift.decorators" package to "forklift.source.decorators"

    • Added RoleInput and GroupedTopic sources

    • Made replay and retry usable for kafka by way of RoleInput (see the plugins documentation)

    • Added constructor injection

    • The Replay message consumer is now idempotent, enabling better scaling

    • Internally, made source processing more general

    • Reworked some of the internals of the Kafka Connector

    • Made a few bug fixes for the Kafka Connector

  • April 10th 2017 - v1.1

    • Kafka Connector

    • Core no longer depends on the JMS spec libraries

Current Release Dependencies

SBT

libraryDependencies += "com.github.dcshock" % "forklift-server" % "2.0"

Maven

<dependency>
    <groupId>com.github.dcshock</groupId>
    <artifactId>forklift-server</artifactId>
    <version>1.0</version>
</dependency>

Dockerfile

FROM dcshock/forklift:1.1

# Add jar'd binks projects to the deployment directory
ADD my.jar $FORKLIFT_CONSUMER_HOME/my.jar

# See boot.sh file below
ADD boot.sh /opt/boot.sh
CMD ["/opt/boot.sh"]

Docker boot.sh

A boot script that will start forklift based on several environment variables.

#!/bin/sh
# startup forklift

forklift-server
 -consulHost $NODE_IP
 -url consul.activemq-broker
 -monitor1 /usr/local/forklift/consumers
 -monitor2 /config
 -retryESHost $FORKLIFT_ES_HOST
 -retryESPort $FORKLIFT_ES_PORT
 -replayESHost $FORKLIFT_ES_HOST
 -replayESPort $FORKLIFT_ES_TRANSPORT_PORT
 -replayESCluster $FORKLIFT_ES_CLUSTER
 $FORKLIFT_RETRIES

Components

Forklift is separated into individual libraries that make up the framework. forklift-server will bring in all the necessary dependencies and plugins to use Forklift with ActiveMQ.

Forklift-Server

Forklift packaged as a set of server based components that can be executed at runtime.

Forklift-Activemq

A connector for ActiveMQ.

Forklift-Kafka

A connector for Kafka.

Forklift-Stats

A plugin for Forklift that collects stats for each message and places them in properties for storage by other plugins.

Forklift-Retry

A broker agnostic implementation of retries. Uses elastic search for storage.

Forklift-Replay

A broker agnostic implementation of message replay logging. Uses elastic search for storage. Kibana makes a great tool to view Forklift replay logs.

See the plugins documentation for more information on how to install and use plugins.

About

Enterprise Service Bus - Java

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 95.7%
  • Scala 4.3%