How EEI Connectors Behave on Your Network¶
Every EEI connector that reads from a system over HTTP, such as an ABB Knowledge Manager WebAPI, sends those calls through one shared component: the HTTP resilience SDK. This page is for the people responsible for that system and the network between: what traffic to expect, how the connector reacts when your system is busy, and what you can adjust.
The short version: the connector is built to be a polite client. It limits how many requests it has in flight, backs off when your system pushes back, stops calling a system that is failing, and never loses data silently while doing so.
What it connects to¶
- Only the endpoints in its configuration. For a connector, that is the source system it reads from, and the Seeq server, reached through the Seeq agent it runs inside.
- Outbound only. The connector opens no listening ports on the agent host.
- Nothing to EEI. The resilience layer is an in-process library. It makes no network calls of its own, and license checks are local too. See Licensing.
How it paces its requests¶
| Behavior | What it means for your system | Default |
|---|---|---|
| Bounded concurrency | A cap on how many requests are in flight to one source at a time | Set per connector. For ABB KM, 4 (MaxConcurrentRequests) |
| Adaptive concurrency | When your system signals strain, the connector halves its concurrency, then raises it gradually as responses recover | On |
| Retry with back-off | A transient failure (a timeout, a reset connection, a 5xx) is retried after a randomized, growing delay, so retries from many requests do not arrive together |
3 retries, delays from 0.2 s up to 20 s |
| Honors "slow down" | An HTTP 429, or a 503 with Retry-After, is treated as a request to wait. The connector waits as long as your system asks, up to a ceiling |
Retry-After honored up to 120 s |
| Circuit breaker | If most recent calls to a source fail, the connector stops calling it for a while, then sends a few probe requests before resuming. A struggling system gets room to recover instead of a retry storm | Opens at 50% failures over the last 20 calls (after at least 10). Rests 30 s, then 3 probes |
| Rate limit | An optional fixed ceiling on requests per second, for systems with a strict budget | Off; set RequestsPerSecond to enable |
Client errors are not retried. A 4xx other than 408 or 429, such as a rejected sign-in,
fails immediately. So a wrong password does not become a stream of repeated sign-in attempts against
your account-lockout policy.
Health checks are light. Besides its data requests, a connector answers the Seeq agent's regular
health check with a small availability request to the source. For ABB KM that is GetAvailability,
every few seconds (the agent sets the interval). It is deliberately outside the circuit breaker, so
the connector can tell when your system has recovered.
What you can adjust¶
These settings sit in each connection's VForge.Http block in the connector's configuration, so
they can differ per source system:
| Setting | Effect |
|---|---|
MaxRetries |
How many times a transient failure is retried |
BackoffBaseMs, BackoffMaxMs |
The shortest and longest wait between retries |
RequestsPerSecond |
A fixed rate ceiling. 0 means none |
CircuitBreakerEnabled |
Whether the circuit breaker is used |
AdaptiveConcurrency |
Whether concurrency adapts to strain, or stays fixed |
Tls |
Whether the server certificate is validated. See below |
The connector's own documentation names its concurrency setting. For ABB KM it is
MaxConcurrentRequests, in the user guide.
If your system has a documented request budget, tell us, and we will help set these to fit it.
Certificate validation¶
Where a connection uses https, the traffic is encrypted. Whether the connector also checks the
server's certificate is a per-connection choice (VForge.Http.Tls.Trust):
Any, the default. No certificate or hostname check. It stays the default because many plant systems use self-signed certificates, and existing installations depend on it.System. The certificate must chain to an authority the agent host trusts: on Windows, the Windows trust store, where a plant's internal CA usually lives. The hostname must match.File. Trust only the certificates in a file you supply, such as your internal CA or one pinned server certificate. The hostname must match.
A setting the connector cannot honor stops that connection from connecting. It never quietly falls back to accepting any certificate. The ABB KM user guide has the step-by-step for pinning a certificate.
Why this matters¶
Handled naively, the ordinary pushback of a busy system (a recycled connection, a "too many requests", a timeout) makes a connector abandon data rather than retry it. Nothing crashes, and the gap is found later, in an analysis. EEI built this layer after exactly that happened with an earlier connector. The rule it enforces: every request either completes or raises a clear error. Silence is not an outcome. For how that fits the rest of what every EEI connector provides, see Connectors ++.
About this SDK¶
| What it is | A shared library every EEI HTTP connector is built with. Customers do not install it separately: it ships inside each connector |
| Languages | Java today. Python and .NET are planned |
| Availability | Built into EEI products and documented openly. Not offered for third-party development |
See the SDK inventory for the rest of the family.