Introduction
Virtufin API is a high-performance API gateway built on .NET that provides a unified interface for gRPC service discovery, reflection, state management, configuration, and event-driven pub/sub messaging.
Key requirement: All backend services registered with the API Gateway must implement gRPC reflection. The gateway discovers service methods, validates schemas, and executes calls dynamically via reflection. Services without it cannot be proxied.
What is Virtufin API?
Virtufin API acts as a gateway between external clients and internal microservices. Instead of requiring clients to know the exact gRPC endpoint of every backend service, they connect to a single gateway that handles:
- Service Discovery: Dynamically discover available gRPC services and their methods
- Method Invocation: Call any gRPC method via a generic JSON-based invocation interface
- State Management: Distributed key-value state store with conflict detection
- Configuration: Runtime configuration management with hot-reload support
- Pub/Sub Messaging: Event-driven communication with server-streaming subscriptions
Key Features
| Feature | Description |
|---|---|
| Mirrored gRPC | Invoke any registered gRPC backend without compile-time proto dependencies |
| Sub-Protocol Formatter | Transform gRPC responses into JSON for non-gRPC consumers |
| Event Streaming | Server-sent events via server-streaming gRPC subscriptions |
| Dynamic Configuration | Hot-reload runtime settings without service restarts |
| Health Monitoring | Built-in health checks with detailed service status reporting |
Use Cases
- API Aggregation: Single entry point for multiple gRPC microservices
- Legacy Integration: Expose gRPC backends as JSON REST endpoints
- Event-Driven Architecture: Pub/sub system for real-time event distribution
- Multi-Tenant State: Namespace-isolated key-value storage per tenant
- DevOps Tooling: Runtime service discovery for debugging and monitoring
Getting Started
To get started with Virtufin API:
- Read the Architecture Overview to understand the system design
- Follow the Getting Started guide to deploy your first instance
- Explore the API Reference for detailed endpoint documentation
- Choose your SDK: C#, Python, or TypeScript
Requirements
| Component | Version |
|---|---|
| .NET | 10.0+ |
| Dapr | 1.18+ |
| Protocol Buffers | proto3 |
Next Steps
- Architecture — Deep dive into the system design
- API Reference — Complete REST and gRPC endpoint documentation
- C# SDK — .NET client library
- Python SDK — Python async gRPC client
- TypeScript SDK — TypeScript Connect-RPC client
- Development — Local development and testing
- Deployment — Production deployment guide