This document explains the key architectural decisions behind Bifrostβs design, the rationale for these choices, and the trade-offs considered during development.
π Configuration Guide: Provider Setup β
π Performance Tuning: Memory Management β
π Fallback Configuration: Provider Fallbacks β
π Schema Reference: Go Package Schemas β | HTTP API Reference β
π Configuration Guide: Provider Configuration β | Key Management β
Aspect | HTTP Transport | Go Package | Why Both? |
---|---|---|---|
Use Case | Microservices, any language | Go applications | Maximum flexibility |
Performance | High (sub-100ΞΌs overhead) | Maximum (direct calls) | Performance options |
Integration | REST API calls | Go imports | Integration preferences |
Features | All features via HTTP | All features direct | Feature parity |
π Interface Guides: Go Package β | HTTP Transport β
Configuration | Memory Usage | Performance | Best For |
---|---|---|---|
High Performance | High baseline (1.5GB+) | Maximum throughput | Production, high-load |
Memory Efficient | Low baseline (100MB) | Good throughput | Development, constrained |
Balanced | Medium baseline (500MB) | High throughput | Most deployments |
Feature | Reliability Gain | Complexity Cost | Decision |
---|---|---|---|
Fallback Chains | High | Medium | β Include |
Automatic Retries | Medium | Low | β Include |
Circuit Breakers | High | High | β Future Release |
Health Monitoring | Medium | Medium | β Include |
π Error Handling: Error Reference β
π Plugin Development: Plugin Guide β
π MCP Setup: MCP Configuration β