Skip to content

LearnWords Platform: Architecture Migration & Production Hardening #1

Description

@pinsvin00

Summary
The current Python-based vocabulary learning tool has reached its scaling limits and lacks enterprise architectural standards. To support projected user growth and meet compliance requirements, we need to refactor the platform using industry-standard technologies and patterns.
Technical Acceptance Criteria
✓ Language & Framework: Migrate from Python to Java (Spring Boot 3.2+). All business logic must be implemented in stateless microservices.
✓ Data Layer: Replace file-based storage with PostgreSQL. Implement proper schema versioning and migration tools (Liquibase).
✓ Service Architecture: Separate word management, progress tracking, and user authentication into distinct services. Each service must have its own database.
✓ API Gateway: Implement Kong or similar API gateway with rate limiting, request logging, and authentication middleware.
✓ Message Queue: Implement RabbitMQ or Apache Kafka for async event processing between services.
✓ Containerization: All services must be containerized (Docker) and orchestrated via Kubernetes. Include proper health checks and resource limits.
✓ Observability: Integrate ELK stack (Elasticsearch, Logstash, Kibana) and Prometheus for monitoring. Distributed tracing via Jaeger.
✓ Testing: Minimum 80% code coverage. Unit tests (JUnit), integration tests (Testcontainers), and contract tests (Pact).
✓ CI/CD: GitHub Actions pipeline with automated testing, security scanning (SAST), and deployment to staging/production.
✓ Documentation: OpenAPI/Swagger specs for all endpoints. Architecture Decision Records (ADRs) for all major decisions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions