0.0.22 • Published 6 years ago

sint-bit-jesus v0.0.22

Weekly downloads
92
License
-
Repository
github
Last release
6 years ago

jesus

Javascript Microservice Comunication Manager: jesus is a cross-service multichannel (http,tcp,upd) comunication (rpc, events) layer

FEATURES:

  • rpc and event managment
  • various response types: noResponse, aknowlegment, response, stream
  • various channels:udp,http,socket
  • CHANNEL = serialization -> compression -> tranport , ES. compressedHttp = JSON -> gzip -> http/rest
  • event's channel selected by event/rpc config (ex. log event on udp, domain event on http/rest)
  • All requests and responses (for rpc and events) are described with jsonschema

REQUIRE:

  • schema manager, a way to share info between microservice (etcd,consul,memcache,redis,ecc)

TODO:

  • the compatibility between microservices is tested at start
  • eliminate babel await/async dependecy
  • channels based on zeromq
  • TLS connnection encryption based on certificates (protection of the exchanged on single comunication)
  • specific message encryption (only messages with the right certificate can decrypt)
  • comunication between microservice and jesus based on unixsocket: not npm module require, language agnostic comunication, deployable on kubernetes as Daemonset (one jesus server per node, comunication based on unixsocket)

EXAMPLE

  • Microservice 1
    • JesusClient EVENT : find services listening for event and loop rpc
      • JesusClient RPC : validate message and data (based on receiver method jsonschema), find right transport and send
        • ChannelClient : encode/compress message and send request
          • ChannelServer : receive request and decode/decompress message
            • JesusServer : receive message and call dervice method
              • Microservice 2 function

OBJS

  • Msg (rpc call) = { Method, Data, Meta}
  • Method = method to call
  • Data = method data defined in jsonschema
  • Meta = { corrid, userid, from, reqInTimestamp, reqOutTimestamp, channel}
  • Channel = serialization (simple json,webpack) + compression (gzip) + channel
  • Schema = share data schema between services
0.0.22

6 years ago

0.0.21

7 years ago

0.0.20

7 years ago

0.0.19

7 years ago

0.0.18

7 years ago

0.0.16

7 years ago

0.0.13

7 years ago

0.0.11

7 years ago

0.0.10

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

1.0.1

7 years ago

0.0.1

7 years ago

1.0.0

7 years ago