Javascript implementation of Delivery


2.0.62 years ago4 years agoMinified + gzip package size for @jayesol/jayeson.lib.delivery in KB


v 1.4.1

  • Use StreamFinder 1.6.0: Supports advertisements with paths.
  • New message group for Name Feed: group 30.
  • Prevent streams from getting excluded more than once by having only one ReconnectClientTask.
  • Not to attempt to load truststore if truststores are not provided in the SSL config.

v 1.3.9

  • Use StreamFinder 1.4.1 : Sends advertisements containing all unadvertised streams instead of one advertisement per stream.
  • Use StreamFinder 1.5.0 : Split streams inside an advertisement into chunks of 100.
  • Fix memory leak of event loop not garbage collected if connection fails by shutting down the event loop.
  • Fix guice circular dependency between AuthService and AuthGroupProcessor.
  • Fix reconnection missing streams issue #18763.
  • Fix relayer oom issue #19366.
  • Fix disconnection from stream by not sending deregistration request twice #19650
  • Created ConsumptionStopEvent class in Java. An instance will be sent upon successful deregistration from stream.
  • Fixed not able to reconnect to redis server as a result of a change in redis server ip.
  • Added keepalive sending from subscriber to publisher and made sending of keepalive from publisher to subscriber be configurable and default to false.

v 1.2.0

  • Use StreamFinder 1.3.0 : Discovering with scope information
  • TypeScript Support for delivery
  • Improved keep-aliv sending. Will only send if there are no other messages sent
  • Bug fixes involving release of reference counted messages, AuthMessage time out. Config change: Move authMsgTimeout to authServiceConfig
  • StreamStopMessage implementation. PE can explictly tell subscriber that it is stopping a stream and subscriber can failover. Refer to wiki for more information

v 1.1.2

  • Use StreamFinder 1.2.3
  • Use Netty 4.0.36.Final
  • Support multiple scopes in subscriber(Update subscriber config.Will not work with older config)
  • Fixed Reconnection bug in Subscriber where reconnection trying stops after some retries
  • Remove StreamRegistry Group Processing from Eventloop.(No change is needed in PE)
    • To Describing PE callback behavoiur more explcitly:
      • PE should expect messages from an endpoint AFTER call of actOnStreamRegistrationRequest()
      • PE should initiate sending messages ONLY afte call of startPublishing()
  • Subscriber now dont make unnecessary connection to StreamFinder if application is not using subscriber module(i.e If no discovery streams in config).
  • Exposed default handlers in JsonBaseMessageClass. Applications can now extend JSonBaseMessageClass to do custom transformation of message within pipeline itself. E:g here
  • Added Abstrations for using with jruby
  • Minor bug fixes and improved logging

Registered MessageGroups. Please register your message group before using on common infrastructure

Group Byte
ObscureGroup(used internally) 0
StreamRegistryGroup 2
ConnectionCheckingGroup(keep alive) 4
Authentication Group 5
GenericMessageGroup 6
OrderFeed 11
MinMax Feed 12
Vodds Config Feed 13
Soccer Results Feed 14
Sports Results Feed 15
Name Feed 30
SoccerFeed 69
Ping Pong Feed(Demo Example) 71
Sports Feed 70

Develeoper Notes

We follow google java style guide

Few Points to take note(Copied from style guide ):

4.1 Braces

4.1.1 Braces are used where optional

Braces are used with if, else, for, do and while statements, even when the body is empty or contains only a single statement.

4.1.2 Nonempty blocks: K & R style

Braces follow the Kernighan and Ritchie style ("Egyptian brackets") for nonempty blocks and block-like constructs:

No line break before the opening brace.
Line break after the opening brace.
Line break before the closing brace.
Line break after the closing brace if that brace terminates a statement or the body of a method, constructor or named class. For example, there is no line break after the brace if it is followed by else or a comma.


  @Override public void method() {
    if (condition()) {
      try {
      } catch (ProblemException e) {

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.