Internship Project/Data Labeling and Update Tool

(25.02.20) ERD (Even Sourcing Based)

Genie; 2025. 2. 24. 17:34

Multi-DB Resource-based Architecture - Event Sourcing Applied

  • 회의를 통해 CRUD 패턴이 아닌, Event Sourcing 기반으로 사용자(Reviewer)가 잘못된 데이터가 있을 경우 업뎅이트 진행하면서 업데이트가 지속적으로 업데이트 되는 패턴으로 결정
    • 필터를 통해 원하는 데이터만 조회해 오는 간단한 구조 
    • 따라서 원하는 버전과 함께 저장하면서 버저닝 가능
  • The dataset, including its sample data (row data), versioning archive, and template data, will be managed using MongoDB.
    • The columns in each dataset may vary.
    • Distinction is made by the collection name and document ID in MongoDB, which are stored as field values in the table.
  • The updated sample data follows “Event Sourcing”, where it is continuously accumulated and versioned.
    • Depending on the versioning, the Reviewer can load previous versions of each sample data to perform updates as needed.
  • Templates are for reference only and are read-only at this stage, without any relationships.
  • Labels related to the labeling feature need further discussion.

Server Configuration (Container-Based Deployment Idea)

  • The Spring Boot application and database are run in containers to improve scalability and maintainability.

Docker-Based Container Setup

  • Spring Boot Application → app-container
  • MongoDB → mongo-container
  • MySQL/PostgreSQL (RDB) → rdb-container
  • ( Nginx (API Gateway, Reverse Proxy) → nginx-container )

Network and Communication Structure

  • The Spring Boot application connects to MongoDB and RDB, while the client sends API requests via Nginx.