elasticservices

A framework for creating self coordinating asynchronous services.

License

License

GroupId

GroupId

com.socklabs
ArtifactId

ArtifactId

elasticservices-parent
Last Version

Last Version

1.0.0-rc2
Release Date

Release Date

Type

Type

pom
Description

Description

elasticservices
A framework for creating self coordinating asynchronous services.
Source Code Management

Source Code Management

https://github.com/ngerakines/elasticservices

Download elasticservices-parent

How to add to project

<!-- https://jarcasting.com/artifacts/com.socklabs/elasticservices-parent/ -->
<dependency>
    <groupId>com.socklabs</groupId>
    <artifactId>elasticservices-parent</artifactId>
    <version>1.0.0-rc2</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.socklabs/elasticservices-parent/
implementation 'com.socklabs:elasticservices-parent:1.0.0-rc2'
// https://jarcasting.com/artifacts/com.socklabs/elasticservices-parent/
implementation ("com.socklabs:elasticservices-parent:1.0.0-rc2")
'com.socklabs:elasticservices-parent:pom:1.0.0-rc2'
<dependency org="com.socklabs" name="elasticservices-parent" rev="1.0.0-rc2">
  <artifact name="elasticservices-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.socklabs', module='elasticservices-parent', version='1.0.0-rc2')
)
libraryDependencies += "com.socklabs" % "elasticservices-parent" % "1.0.0-rc2"
[com.socklabs/elasticservices-parent "1.0.0-rc2"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • core
  • gossip
  • http
  • rabbitmq
  • activemq
  • work

About

This library provides a protocol buffer based framework for creating self coordinating asynchronous services.

Please refer to the project website for documentation:

http://elasticservic.es/

Overview

The library provides tools and components to create and define services that can communicate with each other.

A component is essentially a daemon that has one or more services running on it. Components are identified by a three part component ref that consists of a site id, cluster id and component id. A service is an instance of a service implementation associated with a component and is identified by a two part service ref consisting of a component and a service id.

When a service wants to engage another service, it uses the service registry to send a message to the service identified by the service ref.

An example service implementation is the gossip service. It consists of a service implementation that listens to component online and component status messages that are broadcasts to a fanout topic as well as a broadcast work that periodically sends out those messages for other components to consume.

Example: Calc

In the examples directory are the calc-service and calc-webapp maven modules.

The calc-service module includes a calculation service that listens to add messages and responds with result messages. It is an example of a standalone JSVC based daemon.

The calc-webapp module includes a spring-based HTTP API that engages the calc service. It includes an example edge service that demonstrates how synchronous projects, like HTTP edges, can engage asynchronous services.

License

Copyright (c) 2013,2014 Nick Gerakines [email protected]

This project and its contents are open source under the MIT license.

Versions

Version
1.0.0-rc2
1.0.0-rc1