network-services
Advanced tools
Comparing version 1.0.2 to 1.0.3
{ | ||
"name": "network-services", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
@@ -78,3 +78,3 @@ # *Network⬄Services* | ||
A Service Pool scales a Service App using Worker threads. This is a utility feature that facilitates scaling using request-response messaging. The Service Pool implementation is just one of many [scaling](#scaling) models that could be used to scale a *Network-Services* app. You can create a Service Pool using the `network-services.createServicePool` helper function. Because a pool of Service Apps may be shared by many Service API clients (i.e., a many-to-many relationship), the Service Pool implementation is limited to request-response messaging; a request is made using a Service API and the response from the Service App is returned to the caller. However, a more sophisticated implementation could support coordinated bi-directional communication between many Service API clients and a pool of Service Apps. | ||
A Service Pool is a utility feature that facilitates scaling Service Apps using Worker threads. The Service Pool implementation is just one of many [scaling](#scaling) models that could be used to scale a *Network-Services* app. You can create a Service Pool using the `network-services.createServicePool` helper function. Because a pool of Service Apps may be shared by many Service API clients (i.e., a many-to-many relationship), the Service Pool implementation is limited to request-response messaging; a request is made using a Service API and the response from the Service App is returned to the caller. However, a more sophisticated implementation could support coordinated bi-directional communication between many Service API clients and a pool of Service Apps. | ||
@@ -209,3 +209,3 @@ Please see the [Scalable "Hello, World!"](https://github.com/faranalytics/network-services/tree/main/examples/scalable_hello_world) example for a working implementation using a Service Pool. | ||
## Scaling | ||
*Network-Services* was architected in order to support a variety of scaling models. The simple request-response model implemented by the [Service Pool](#service-pool) facility is just one of many possible approaches to scaling an application built on *Network-Services*. For example, a Service Pool implementation where there is a one-to-one relationship between Service APIs and Service Apps would permit bi-directional communication. An alternative approach may be to run multiple servers in separate processes or Worker threads, connect to each of them, and round-robin through the respective Service APIs. Likewise, a container orchestration framework could be used to easily scale a *Network-Services* app. | ||
*Network-Services* was architected in order to support a variety of scaling models. The model implemented by the utility [Service Pool](#service-pool) facility, which supports request-response messaging, is just one of many possible approaches to scaling an application built on *Network-Services*. For example, a Service Pool implementation where there is a one-to-one relationship between Service APIs and Service Apps would permit bi-directional communication. An alternative approach may be to run multiple servers in separate processes or Worker threads, connect to each of them, and round-robin through the respective Service APIs. Likewise, a container orchestration framework could be used to easily scale a *Network-Services* app. | ||
@@ -212,0 +212,0 @@ Complexities arise when muxing many-to-many relationships; hence, please see the simple and capable [`ServicePool`](https://github.com/faranalytics/network-services/blob/main/src/service_pool.ts) implementation for relevant considerations if you wish to draft a custom implementation. |
73085