The "Web API Correlator" enables correlation functionality for Web API and interconnected Web API services within a service composition.
With the increasing complexity of modern distributed SOA systems containing interconnected services, it becomes crucial to determine causal relationships between the services and its clients. It is important to understand the various components that were part of a request flow to support critical scenarios such as health monitoring, troubleshooting, and root cause analysis. For this reason many frameworks provide correlation capability. For example, WCF has built-in correlation functionality.
Although Web API creates (Request.GetCorrelationId()) and carries the Correlation Id throughout the HTTP request handling process, taking care of thread context switches as part of asynchronous nature of processing Web API requests, the boundary for this Correlation Id is limited to a single server-side request-response cycle. In other words, the Correlation Id Web API provides "out of the box" is limited to a single service boundary. In essence, Web API lacks ability to correlate processes between client and server, as well as interconnected services chains applicable to many distributed SOA applications. Effectively, we lose ability to relate multiple events immediately as a process crosses the service boundary; the information about multiple linked events within the system become dispersed data records rather representing the related nature of those events.
The "Web API Correlator" enables absent functionality by transferring the Correlation Id from API Client (browser or .NET HttpClient, or .NET WebClient) to the server, propagating it into the server-side Web API process, and forwarding to interconnected Web API services within a service composition.
The "Web API Correlator" contains correlation component for .NET, and offers a plugin for jQuery AJAX. The jQuery plug-in manages and maintains the Correlation Id on the client-side and ensures the Correlation Id being added to all AJAX requests.
Please visit http://throttlewebapi.codeplex.com/documentation for assistance with configuration.
- Microsoft.AspNet.WebApi.Core (>= 5.1.2)