Skip to content

Instantly share code, notes, and snippets.

@giyeon-dev
Last active June 26, 2025 00:52
Show Gist options
  • Save giyeon-dev/64c627b6c048b29b7de76fd48519208e to your computer and use it in GitHub Desktop.
Save giyeon-dev/64c627b6c048b29b7de76fd48519208e to your computer and use it in GitHub Desktop.
srs_reciping

Software Requirements Specification (SRS)

Document ID: SRS-RECIPING-001
Revision: 1.0
Date: 2025-06-26
Standard: ISO/IEC/IEEE 29148:2018


1. Introduction

1.1 Purpose

This document defines the requirements for Reciping, a microservices-based Korean recipe sharing platform with AI-powered recommendations, logging infrastructure, and cloud-native deployment in accordance with the ISO/IEC/IEEE 29148:2018 standard.

1.2 Scope

  • Recipe Management: CRUD operations with social features (likes, bookmarks, comments)
  • AI-Powered Recommendations: NeuMF model-based personalized suggestions with MLflow tracking
  • Recipe Search: Search functionality with DishType category filtering
  • Advertisement System: A/B testing framework with logging and monitoring
  • Logging Infrastructure: Real-time log collection via Kafka and EFK stack with structured logging
  • Cloud Infrastructure: AWS EKS/ECS deployment with Terraform IaC and automated CI/CD pipeline

1.3 Definitions, Acronyms, Abbreviations

Term Definition
MSA Microservices Architecture
NeuMF Neural Matrix Factorization for collaborative filtering
EFK Elasticsearch, Fluentbit, Kibana logging stack
MLflow Machine learning lifecycle management platform
IaC Infrastructure as Code
A/B Test Comparative experiment between advertisement variants

2. Stakeholders

Role Department Responsibility
Planning Manager (PM) Project Management Requirements gathering and prioritization
Backend Development Lead Backend Team API design and microservices architecture
ML Engineer Data Science Team NeuMF recommendation system and ML pipeline
DevOps Engineer Infrastructure Team Cloud infrastructure, CI/CD, and monitoring
Logging Engineer Platform Team Logging infrastructure and data pipeline

3. System Context and Interfaces

User → React Web App → Backend Services (EKS)
                    ├── Recipe Service
                    ├── User Service  
                    ├── Advertisement Service (A/B Testing)
                    └── Search Service
                            ↓
                    ML Service (ECS) → NeuMF Model
                            ↓
                    Data Layer (PostgreSQL, MongoDB, S3)
                            ↓
                    Logging Pipeline (Kafka → EFK Stack)

4. Specific Requirements

4.1 Functional Requirements

ID Title Priority Acceptance Criteria Owner
REQ-F-001 Recipe CRUD with Social Features Must Have Users can create/view recipes, like/bookmark, add comments with DishType categorization Backend Lead
REQ-F-002 NeuMF-based Recipe Recommendations Must Have ML model provides personalized recommendations with 75%+ accuracy ML Engineer
REQ-F-003 Recipe Search with DishType Filtering Must Have Users can search recipes and filter by DishType categories Backend Lead
REQ-F-004 Advertisement A/B Testing Framework Must Have System serves different ad variants with statistical tracking and performance monitoring Backend Lead
REQ-F-005 Structured Logging with Business Context Must Have All services generate structured logs with business context via Kafka and EFK stack Logging Engineer
REQ-F-006 Infrastructure as Code Deployment Must Have GitHub Actions deploys infrastructure changes via Terraform DevOps Engineer
REQ-F-007 ML Pipeline Automation Should Have Automated data processing, training, and model deployment ML Engineer

4.2 Non-Functional Requirements

ID Requirement Target Value Owner
REQ-NF-001 API Response Time (p95) ≤ 800ms DevOps Engineer
REQ-NF-002 System Availability ≥ 99.9% monthly DevOps Engineer
REQ-NF-003 Log Processing Latency ≤ 3 seconds Logging Engineer
REQ-NF-004 ML Pipeline Execution Time ≤ 10 minutes ML Engineer
REQ-NF-005 ML Model Response Time ≤ 200ms ML Engineer
REQ-NF-006 CI/CD Pipeline Execution ≤ 5 minutes DevOps Engineer

5. Technology Stack

Frontend:
  - React Web Application

Backend Services (EKS):
  - Java Spring Boot (Recipe, User, Advertisement, Search)
  - FastAPI (ML Recommendation Service on ECS)

Data Storage:
  - PostgreSQL 
  - MongoDB 
  - S3 (Media files, model artifacts)

ML Infrastructure:
  - PyTorch (NeuMF model)
  - MLflow (Experiment tracking)
  - Prefect (Pipeline orchestration)

Logging & Monitoring:
  - Kafka (Log streaming)
  - Fluent Bit (Log collection)
  - Elasticsearch (Log storage)
  - Kibana (Log visualization)
  - Prometheus + Grafana (Metrics)

Infrastructure:
  - AWS EKS (Microservices)
  - AWS ECS (ML containers)
  - Terraform (Infrastructure as Code)
  - GitHub Actions (CI/CD)

6. Core Data Models

// Recipe Classification
public enum DishType {
    ALL, BANCHAN, MAIN_DISH, SOUP, STEW, DESSERT,
    NOODLE_DUMPLING, RICE_PORRIDGE, FUSION, KIMCHI_SAUCE,
    SEASONING, WESTERN, SALAD, SOUP_WESTERN, BREAD,
    SNACK, BEVERAGE, ETC;
}

// Logging System
public enum LogType {
    CREATE_LIKE, DELETE_LIKE, GET_LIKE, RECIPE_CREATE,
    RECIPE_VIEW, USER_SIGNUP, USER_LOGIN, SEARCH_QUERY,
    AD_CLICK, AD_VIEW;
}


// Advertisement A/B Testing
public enum AdVariant {
    VARIANT_A, VARIANT_B;
}


// System Management
public enum UserRole {
    ADMIN, USER, GUEST;
}

7. Traceability Matrix

Requirement ID Module Implementation Component Test Validation
REQ-F-001 Recipe Service RecipeController Unit + Integration
REQ-F-002 ML Service NeuMFRecommendationEngine Model Accuracy
REQ-F-003 Search Service RecipeSearchService Search Relevance
REQ-F-004 Advertisement Service ABTestManager Statistical Testing
REQ-F-005 Logging Service StructuredLoggerService Log Integrity
REQ-F-006 Infrastructure TerraformModules Deployment Testing
REQ-F-007 ML Pipeline PrefectWorkflow Pipeline Execution

Document Prepared by: Backend Development Lead
Technical Review: ML Engineer, DevOps Engineer, Logging Engineer
Final Approval: Planning Manager (PM)


This SRS document defines the core requirements for Reciping platform, focusing on implemented features including A/B testing framework, logging infrastructure, and cloud-native ML operations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment