Skip to content

SpecVital Architecture

🇺🇸 English Version

Overview

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

┌─────────────────────────────────────────────────────────────────────────────────┐
│                              SpecVital Platform                                  │
├─────────────────────────────────────────────────────────────────────────────────┤
│                                                                                  │
│   ┌──────────────────────────────────────────────────────────────────────────┐  │
│   │                            Web Service                                    │  │
│   │                                                                           │  │
│   │   ┌─────────┐                                 ┌─────────────────────┐   │  │
│   │   │   web   │                                 │      collector      │   │  │
│   │   │         │                                 │                     │   │  │
│   │   │  API +  │                                 │  ┌───────┐ ┌──────┐ │   │  │
│   │   │Dashboard│                                 │  │Worker │ │Sched │ │   │  │
│   │   └────┬────┘                                 │  └───┬───┘ └──────┘ │   │  │
│   │        │                                      │      │               │   │  │
│   │        │                                      │      ▼               │   │  │
│   │        │                                      │  ┌───────┐           │   │  │
│   │        │                                      │  │ core  │ (Library)│   │  │
│   │        │                                      │  └───────┘           │   │  │
│   │        │                                      └──────┬───────────────┘   │  │
│   │        │                                             │                   │  │
│   │        └──────────────────┬──────────────────────────┘                   │  │
│   │                           │                                              │  │
│   │                           ▼                                              │  │
│   │                   ┌──────────────────────┐                               │  │
│   │                   │     PostgreSQL       │                               │  │
│   │                   │ (Data + River Queue) │                               │  │
│   │                   └──────────────────────┘                               │  │
│   └──────────────────────────────────────────────────────────────────────────┘  │
│                                                                                  │
└─────────────────────────────────────────────────────────────────────────────────┘

Repositories

core

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

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

collector

역할: 분석 워커

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

Data Flow

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

흐름:

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

Deployment

배포 플랫폼

서비스플랫폼
PostgreSQLNeon
web-backendRailway
web-frontendVercel
collector-workerRailway
collector-schedulerRailway

확장성

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

Open-source test coverage insights