Loading…
Loading…
Automatically discover and inventory your entire SOAP service estate by analyzing live traffic from your API gateway. See which services are active, their
Traffic-driven discovery automatically builds a complete inventory of your SOAP services by observing live traffic at your gateway edge, such as a load balancer or API gateway. This solves the common problem of not having a current, complete inventory for large SOAP estates that have evolved over many years. If a service is receiving live traffic, it will be discovered.
This component works by ingesting traffic data from one or more sources, including gateway connectors and the platform's own runtime proxy. A background process analyzes this traffic to identify distinct services, their traffic volume, and the consumers calling them. The output is a ranked, evidence-based inventory called the master discovery view. This view allows API publishers to prioritize which services to onboard for modernization based on real-world usage.
Discovery tells you what services exist and which are most active. Once a service is identified, you can use other platform features to onboard it and begin the modernization process.
The discovery process relies on a "read-path rule" where operator-facing dashboards query pre-computed data rather than raw logs, ensuring high performance regardless of traffic volume.
flowchart TD
subgraph "Gateway Edge"
A[API Consumer] --> B{Load Balancer / API Gateway};
end
subgraph "Platform"
C[Connector] --> D[Raw Transaction Logs];
D --> E[Background Worker];
E --> F[Pre-computed Aggregation Tables];
F --> G[Operator UI / Dashboards];
end
B --> C;
style G fill:#d4edda,stroke:#c3e6cbThe data flow follows these steps:
Raw logs are only queried directly for specific, targeted tasks like viewing the details of a single transaction or for background jobs that derive other data, such as learned examples.
Discovery uses two complementary methods to build the service inventory. A given connector may support one or both.
The platform treats the origin of the data as an explicit dimension named source. You can filter views to a single source (e.g., a specific gateway) or view metrics summed across all sources.
The primary user interface for discovery is the master discovery view. It presents a comprehensive list of every discovered service, ranked by request counts over three rolling time windows.
| Window | Description |
|---|---|
| 24 hours | Indicates how busy the service is currently. |
| 7 days | Shows the service's recent steady-state traffic volume. |
| 1 month | Helps determine if the service is long-lived or a one-off. |
By sorting this list, API publishers can transform an unknown inventory into a prioritized worklist, focusing on the most active services first. A service that has recently gone silent will also be clearly visible. The view's fast load times are a direct result of it reading from pre-computed aggregation tables.
Discovery identifies not only which services are busy but also who is calling them. The platform attributes each transaction to the original consumer by inspecting a standard chain of forwarded-for headers in a specific order of precedence:
X-Client-IP: A dedicated header for the client's IP address.X-Forwarded-For: The de-facto standard proxy chain header. The platform selects the leftmost IP address that is not an internal gateway address.Forwarded: The RFC 7239 standard header, using its for= parameter.The platform uses the first valid IP address found in this sequence that does not belong to the gateway itself. If no such header is present, or if all candidate IPs belong to the gateway, attribution falls back to the gateway's IP address. The transaction is still ingested and contributes to service discovery, but with reduced per-consumer fidelity.
IMPORTANT
For accurate consumer attribution, your gateway edge must be configured to inject one of the supported client-IP headers. Without this, all requests will appear to originate from the gateway's own source-NAT address, collapsing all per-consumer analytics into a single, non-representative aggregate. Each connector's documentation provides the necessary configuration for that vendor. While discovery will function without it, this configuration is highly recommended.
A core architectural principle of the platform is that time-bucketed operator surfaces read from pre-computed aggregation tables, never from raw logs at query time. This rule applies to all traffic sources and ensures that the user interface remains fast and responsive at any scale.
Surfaces driven by aggregation tables:
Operations that use raw logs:
The practical benefit of this design is that UI performance and data freshness depend on the efficient background aggregation process, not on performing slow, expensive queries over massive raw datasets with every page load.