Top 3.5% dependent repos on proxy.golang.org
proxy.golang.org : github.com/godevsig/adaptiveservice
Package adaptiveservice is a message oriented micro service framework. Servers define micro services identified as name of "publisher_service" and publish them to all available scopes: in same process, and further in same OS, and then further in same local network, and then public network where a public root registry address needs to be configured. In process and OS scope, one service name can only be announced once, duplicated service name is treated as error. In network scope, there can be multiple services with the same name, in this case, each service provider publishes the service "publisher_service" along with an unique provider ID. Clients then discover wanted micro services in a way that shortest scope comes first. The discover() API returns a connection channel, reading the channel the client will get one or more connections, with each represents a connection to one of the service providers providing the wanted micro service. The connection then can be used to send/receive messages to/from the service provider. Connections can be multiplexed on client side: NewStream() API creates a new context in which the messages are transferred independently from other contexts over the same underlying connection. The intention of the multiplexer is to have scalability on client side: users use this mechanism to send parallel request messages towards the same service provider to increase execution concurrency. For server side, the incoming messages are handled in auto-scaled worker pool, so the multiplexer used on client side is not needed on server side. Servers listen to different transports for all available scopes: Messages that satisfy Handle() interface are known messages. Typically server defines Handle() method for every message type it can handle, then when the known message arrived on one of the transports it is listening, the message is delivered to one of the workers in which the message's Handle() is called. Clients do not define Handle() method, they just send and receive message in a natural synchronized fashion. Services that are behind NAT can be auto proxied by the builtin reverseProxy service provided by the daemon server in the local network or by the root registry.
Registry
-
Source
- Documentation
- JSON
purl: pkg:golang/github.com/godevsig/adaptiveservice
License: MIT
Latest release: over 1 year ago
First release: over 3 years ago
Namespace: github.com/godevsig
Dependent packages: 2
Dependent repositories: 2
Stars: 2 on GitHub
Forks: 0 on GitHub
See more repository details: repos.ecosyste.ms
Last synced: 28 days ago