Overview
Starting with version 1.1.0, we have made significant architectural changes to simplify our challenge system and modernize our technology stack.
Architecture Simplification
We decided to remove the queue system from our challenge system architecture due to over-engineering concerns. As part of this simplification:
- Deprecated Kafka: Removed message queue infrastructure that was adding unnecessary complexity
- Temporarily removed logging and monitoring: Loki (logging) and Prometheus (monitoring) have been removed in this release but will be reintroduced in a future version
API Framework Migration: Flask → FastAPI
We migrated from Flask to FastAPI to improve code management and development experience:
Previous state with Flask:
- Manual dependency management
- Custom data validation implementation
- Manual API documentation maintenance
New state with FastAPI:
- Built-in dependency injection system
- Automatic data validation with Pydantic
- Auto-generated API documentation (OpenAPI/Swagger)
Database Library Migration: Flask-SQLAlchemy → SQLAlchemy 2.0+
We transitioned from Flask-SQLAlchemy to pure SQLAlchemy due to the framework change:
Migration drivers:
- Flask-SQLAlchemy was tightly coupled to Flask framework
- FastAPI requires direct SQLAlchemy integration
- Opportunity to upgrade to SQLAlchemy 2.0+ for modern patterns and performance improvements
Impact:
- Complete code refactoring required due to SQLAlchemy 2.0's breaking changes
- Updated to modern SQLAlchemy syntax and patterns
- Improved type safety and async support
Deprecated
- Delete Kafka Logic by @S0okJu in #95
- Delete the loki logging logic. by @S0okJu in #96
- Delete the prometheus exporter. by @S0okJu in #97
Changes
- Change fastapi project structure. @S0okJu in #98
- Refactor all of the source code.(all of the features are preserved) @S0okJu in #98 #99 #102 #103 #104 #105
- Migrate Flask to FastAPI to dependency management. by @S0okJu in #100
- Migrate from Flask-SQLAlchemy to pure SQLAlchemy by @S0okJu in #101
Features
- None
Bugs
- None
Chores
- Add unit, integration tests udpated and passing
Full Changelog: v1.0.4...v1.1.0