Loading…
Loading…
Explains how the platform automatically builds a service inventory from live traffic, including data sources, aggregation, and consumer attribution.
Traffic-driven discovery automatically builds a complete and current inventory of SOAP services by observing live traffic. Many organizations lack a comprehensive catalog of their SOAP services, which makes modernization and management difficult. This feature solves that problem by creating an inventory from the traffic that already flows through an edge gateway or load balancer. If a service is actively receiving calls, it will be discovered.
The discovery process has two primary inputs, provided by components called connectors:
The platform processes this data to produce a master discovery view, which ranks all observed services by traffic volume. This provides an evidence-based worklist, enabling API publishers to prioritize which services to onboard and modernize first. Discovery identifies what to onboard; the onboarding process then turns a discovered service into a managed, published API.
The discovery mechanism is designed for performance and scalability. It processes raw transaction data in the background to ensure that operator-facing dashboards remain fast, regardless of the number of services or traffic volume. The process follows a clear data flow from ingestion to presentation.
flowchart TD
subgraph Edge Tier
A[API Gateway / Load Balancer]
end
subgraph Platform
B[Connector]
C[Platform Ingest]
D[Raw Transaction Log]
E[Aggregation Worker]
F[Pre-computed Aggregations]
G[Discovery UI & Dashboards]
end
A -- 1. Traffic Logs & Mgmt API Data --> B
B -- 2. Feeds data --> C
C -- 3. Persists transactions --> D
E -- 4. Reads raw data offline --> D
E -- 5. Writes aggregated data --> F
G -- 6. Reads pre-computed data --> FData Ingestion: A connector integrates with an edge gateway. It may provide data from one or both of two sources:
Persistence: The platform receives this data and persists each transaction as a raw log entry. The platform's own runtime proxy traffic is also ingested and contributes to discovery. All data is tagged with its source, allowing for filtering by source or viewing a combined total.
Aggregation: A background worker continuously processes the raw transaction logs. It rolls up the individual entries into pre-computed aggregation tables. These tables store summary metrics, such as request counts over specific time windows.
Presentation: Operator-facing surfaces, including the master discovery view and performance dashboards, query the pre-computed aggregation tables. They never query the raw logs. This architectural principle, the "read-path rule," ensures that UIs load in sub-second time, even with millions of raw transactions. Raw logs are only accessed for specific tasks like viewing the details of a single transaction or by background workers.
The master discovery view is the primary user interface for discovered services. It presents a list of every service observed through traffic or management API enumeration. For each service, it displays request counts over three rolling time windows, allowing API publishers to assess both current activity and long-term relevance.
Sorting the list by traffic volume transforms the inventory into a ranked worklist for modernization. Services with high traffic that were previously unknown are immediately visible, while services that have become inactive are also clearly identified.
| 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 a service is long-lived or a one-off. |
Beyond identifying busy services, discovery also answers "who is calling what?" by attributing each transaction to its original API consumer. The platform inspects a standard chain of HTTP headers to find the consumer's IP address, intelligently bypassing intermediate proxy and gateway IPs.
The platform checks the following headers in order of precedence:
X-Client-IP: A dedicated header for the client's IP address.X-Forwarded-For: The de-facto standard header for identifying originating IPs in a proxy chain. The platform selects the leftmost IP address that is not an internal gateway IP.Forwarded: The RFC 7239 standard header, using its for= parameter.The first valid IP address found that does not belong to the immediate gateway hop is used for attribution. If no such header is present, or if all candidate IPs belong to the gateway, attribution falls back to the gateway's own IP address. The transaction is still recorded, but per-consumer analytics will not be available.
IMPORTANT
For accurate consumer attribution, the edge gateway must be configured to inject one of the supported client IP headers into requests. Without this, all traffic will appear to originate from the gateway's own address, and per-consumer analytics will be collapsed into a single, uninformative aggregate. Each connector's documentation provides the necessary configuration for its specific gateway vendor. This is a strong recommendation, not a hard requirement.
A core architectural rule 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 is fundamental to the platform's performance at scale.
Aggregation tables are used by:
Raw logs are reserved for only three use cases:
The result of this separation is that user-facing analytics surfaces remain fast and responsive, with data freshness determined by the aggregation worker's refresh interval, not by expensive, on-demand queries over raw data.
X-Client-IP or X-Forwarded-For) containing the original consumer's IP address into the requests it proxies. The platform's attribution logic falls back to using the gateway's IP as the source.