Skip to content

SpecVital Architecture

🇺🇸 English Version

Overview

SpecVital은 GitHub 리포지토리의 테스트 파일을 분석하고 시각화하는 플랫폼.

┌─────────────────────────────────────────────────────────────────────────────────┐
│                              SpecVital Platform                                  │
├─────────────────────────────────────────────────────────────────────────────────┤
│                                                                                  │
│   ┌──────────────────────────────────────────────────────────────────────────┐  │
│   │                                                                          │  │
│   │   ┌─────────┐                          ┌────────────────────────────┐   │  │
│   │   │   web   │                          │     worker (repository)    │   │  │
│   │   │         │                          │                            │   │  │
│   │   │  API +  │                          │  ┌──────────┐ ┌─────────┐  │   │  │
│   │   │Dashboard│                          │  │ Analyzer │ │Scheduler│  │   │  │
│   │   └────┬────┘                          │  └────┬─────┘ └─────────┘  │   │  │
│   │        │                               │       │                    │   │  │
│   │        │                               │       ▼                    │   │  │
│   │        │                               │  ┌────────┐                │   │  │
│   │        │                               │  │  core  │ (Library)     │   │  │
│   │        │                               │  └────────┘                │   │  │
│   │        │                               └───────┬────────────────────┘   │  │
│   │        │                                       │                        │  │
│   │        └───────────────────┬───────────────────┘                        │  │
│   │                            │                                            │  │
│   │                            ▼                                            │  │
│   │                    ┌──────────────────────┐                             │  │
│   │                    │     PostgreSQL       │                             │  │
│   │                    │ (Data + River Queue) │                             │  │
│   │                    └──────────────────────┘                             │  │
│   └──────────────────────────────────────────────────────────────────────────┘  │
│                                                                                  │
└─────────────────────────────────────────────────────────────────────────────────┘

Repositories

core

역할: Tree-sitter 기반 테스트 파서 엔진

항목내용
언어Go
유형Library
소비자worker

worker

역할: 분석 워커 (analyzer, spec-generator)

항목내용
언어Go
의존성core, infra (PostgreSQL)

Data Flow

┌─────────┐                                                    ┌─────────┐
│  User   │                                                    │  User   │
└────┬────┘                                                    └────▲────┘
     │ 1. Request                                                   │ 6. View
     ▼                                                              │
┌─────────────────────────────────────────────────────────────────────────────┐
│                              Web Service                                     │
│                                                                              │
│  ┌─────────┐    2. Enqueue                        3. Consume    ┌───────────┐  │
│  │   web   │──────────────────────────────────────────────────▶│  worker   │  │
│  │  (API)  │                                                    │ (Analyzer)│  │
│  └────┬────┘                                                    └─────┬─────┘  │
│       │                                                               │        │
│       │ 5. Read Results                              4. Parse (core) │        │
│       │                                                               │        │
│       │            ┌────────────────────────────┐                     │        │
│       └───────────▶│       PostgreSQL           │◀────────────────────┘        │
│                    │  (Data + River Queue)      │                              │
│                    └────────────────────────────┘                              │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

흐름:

  1. 사용자가 GitHub URL로 분석 요청
  2. web이 River 큐(PostgreSQL)에 작업 등록
  3. worker (analyzer)가 River에서 작업 수신
  4. worker가 core로 테스트 파싱 후 결과 저장
  5. web이 DB에서 결과 조회
  6. 사용자에게 시각화된 결과 표시

Deployment

배포 플랫폼

서비스플랫폼
PostgreSQLNeon
web-backendRailway
web-frontendVercel
worker-analyzerRailway
worker-schedulerRailway

확장성

Service확장성비고
web수평 확장Stateless
worker (Analyzer)수평 확장Stateless, 병렬 처리
worker (Scheduler)단일 인스턴스Cron 작업

Open-source test coverage insights