Feature/model versioning rate limiting pooling graphql#431
Merged
gelluisaac merged 9 commits intoJun 30, 2026
Merged
Conversation
…oning-rate-limiting-pooling-graphql
…trics Add comprehensive database connection pooling configuration with health checks, metrics collection, and retry logic. - Add pool configuration to database.yaml (min_size, max_size, max_overflow, etc.) - Implement PoolConfig and HealthCheckConfig dataclasses - Add PoolMetrics for tracking connection acquisition times and errors - Add check_database_connection() for connection health verification - Add get_db_with_retry() for automatic connection retry with backoff - Add health endpoints: /health/db, /health/db/pool, /health/db/status - Add readiness and liveness probes for Kubernetes - Add admin endpoint to reset connection pool
Add comprehensive API rate limiting with multiple algorithms, Redis-backed distributed rate limiting, admin override capabilities, and rate limit headers. - Add sliding window algorithm as alternative to token bucket - Add Redis support for distributed rate limiting - Add rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) - Add admin override with whitelist/blacklist support - Add rate limit violation logging with context - Add admin endpoints for managing rate limits - Add per-endpoint rate limit configuration
Add comprehensive model versioning system with semantic versioning, rollback capability, A/B testing support, and deployment tracking. - Add semantic versioning (major.minor.patch) with auto-increment - Add model metadata fields (framework, task_type, description) - Add rollback capability to previous versions - Add A/B testing support with traffic splitting - Add deployment tracking with environment history - Add version comparison with metric deltas - Add version history with status transitions - Add performance metrics tracking and comparison - Add MLflow integration for experiment tracking
Add comprehensive GraphQL API as an alternative to REST for flexible data queries. - Add GraphQL schema for all data models (Account, Transaction, FraudAlert, LoyaltyPoints, ModelRegistry, etc.) - Add query support with pagination and filtering - Add mutation support for creating and updating entities - Add subscription support for real-time updates (transactions, fraud alerts, loyalty points) - Add authentication integration with JWT - Add query depth limiting for security - Add GraphQL playground for development - Add publish functions for GraphQL subscriptions
|
@rachealkenny Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Contributor
Author
|
@gelluisaac please, review. |
Contributor
|
@rachealkenny please rresolve conflict so i can merge |
Resolves conflicts between HEAD and upstream/main branches in the AstroML API application and model registry routers. Changes in api/app.py: - Merge both branches' routers (health, admin, GraphQL from HEAD; query_router from upstream/main) - Add GraphQL playground endpoint for development environments - Keep all router includes from both branches with clear commenting Changes in api/routers/models.py: - Add missing DeploymentEnvironment import from upstream/main - Rename duplicate /compare endpoint to /compare-versions to resolve route conflict - Preserve all additional functionality from HEAD: - Model version rollback - A/B testing endpoints - Model deployment to environments - Version comparison and history endpoints - Deployment history tracking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces foundational backend infrastructure to enhance AstroML's scalability, maintainability, and operational resilience.
astroml/models/registry.py) to manage metadata, performance metrics, rollback capabilities, and A/B testing support, alongside new REST endpoints for model comparison and management.Motivation & Context: As AstroML scales to handle more users and complex ML workflows, these upgrades are necessary to ensure reliable model governance, API stability, database efficiency, and flexible data access for consumers.
Related Files:
astroml/models/registry.py,astroml/api/graphql/,config/api.yaml,config/database.yamlFixes #302
Fixes #299
Fixes #297
Fixes #295
Type of change
Checklist:
Closes #302
Closes #299
Closes #297
Closes #295