We are a bunch of business system developers. We develop systems for banking, teleservice, and government. This kind of system normally required to orchestrate multiple micro systems/services altogether, such as database, messaging bus, application server, load balancer, ..., etc. One of the concerns about developing the systems is to not lost transaction while one of the orchestrated services was defunction/crashed. Normally this could be achieved by adding external transaction management system for caching every message exchanging between services, however, this would complex the design of the system, for example, the availability of the transaction management system itself.

Our goal of the project is to create a communication library/package which equips the message caching ability. Services which exchange messages based on our library will no longer need external transaction management system. With our library, a service failed to handle a request will trigger the previous service hub to resend the message, this is because each service hub will cache the request for the next hub, and delete the request after the request being well handled by the next service hub.

The project is built on go's net package. We wrapped the net package and provided it with the message caching ability. For further details please check our project on github.

Built With

Share this project:

Updates