How bariskisir/jevsharp works
JevSharp is a .NET SDK for submitting a shared state and typed decision questions to Jev-compatible providers and returning typed answers. The main flow is caller → request → configured client → protocol encoding and HTTP evaluation → decoded response. Provider selection, authentication, retries, errors, failover, dependency-injection registration, and optional resilience are supporting capabilities. The map follows the README and source index; some internal transport and resilience details were not sampled, so their connections are limited or marked unverified.
Main entry points: JevClient.cs Evaluation client · JevRequest.cs Evaluation request · JevClientFactory.cs Client factory · JevServiceCollectionExtensions.cs DI registration
Components 16
Request and response
- Evaluation request
src/JevSharp.Abstractions/Requests/JevRequest.cs - Typed questions
src/JevSharp.Abstractions/Requests/JevQuestion.cs - JSON values
src/JevSharp.Abstractions/Models/JevValue.cs - Typed response
src/JevSharp.Abstractions/Responses/JevResponse.cs
Client runtime
- Evaluation client
src/JevSharp.Core/Clients/JevClient.cs
Providers and protocols
- Protocol codec
src/JevSharp.Core/Protocols/ProtocolCodec.cs - Provider protocols
src/JevSharp.Core/Protocols/JevProtocols.cs - Request authentication
src/JevSharp.Core/Authentication/HeaderAuthentication.cs
Configuration and composition
- Client options
src/JevSharp.Core/Configuration/JevClientOptions.cs - Client factory
src/JevSharp/DependencyInjection/JevClientFactory.cs - DI registration
src/JevSharp/DependencyInjection/JevServiceCollectionExtensions.cs
Reliability
- Failover client
src/JevSharp.Core/Clients/FailoverJevClient.cs - HTTP failure classifier
src/JevSharp.Core/Transport/HttpFailureClassifier.cs - Optional HTTP resilience
src/JevSharp/DependencyInjection/Resilience/JevHttpClientBuilderExtensions.cs
Other components
- SDK caller
- Jev-compatible providers
Connections 21
- SDK caller → Evaluation request: creates
- Evaluation request → Typed questions: contains
src/JevSharp.Abstractions/Requests/JevRequest.cs - Evaluation request → JSON values: carries state
src/JevSharp.Abstractions/Requests/JevRequest.cs - SDK caller → Evaluation client: evaluates
- Evaluation client → Evaluation request: accepts
src/JevSharp.Core/Clients/JevClient.cs - Evaluation client → Protocol codec: prepares protocol
src/JevSharp.Core/Clients/JevClient.cs - Protocol codec → Provider protocols: encodes and decodes
src/JevSharp.Core/Protocols/ProtocolCodec.cs - Evaluation client → Jev-compatible providers: sends HTTP request
- Jev-compatible providers → Evaluation client: returns HTTP response
- Evaluation client → Request authentication: applies authentication
src/JevSharp.Core/Clients/JevClient.cs - Evaluation client → Typed response: returns evaluation
src/JevSharp.Core/Clients/JevClient.cs - Client options → Provider protocols: selects protocol
src/JevSharp.Core/Configuration/JevClientOptions.cs - Client options → Request authentication: configures authentication
src/JevSharp.Core/Configuration/JevClientOptions.cs - SDK caller → DI registration: registers clients
- DI registration → Client factory: registers factory
src/JevSharp/DependencyInjection/JevServiceCollectionExtensions.cs - Client factory → Evaluation client: creates clients
src/JevSharp/DependencyInjection/JevClientFactory.cs - Client factory → Failover client: assembles failover
src/JevSharp/DependencyInjection/JevClientFactory.cs - Failover client → Evaluation client: dispatches evaluation
src/JevSharp.Core/Clients/FailoverJevClient.cs - Failover client → HTTP failure classifier: classifies API failures
src/JevSharp.Core/Clients/FailoverJevClient.cs - Evaluation client → HTTP failure classifier: classifies HTTP errors
src/JevSharp.Core/Clients/JevClient.cs - DI registration → Optional HTTP resilience: configures optionally