Skip to content

SpecVital Architecture

🇰🇷 한국어 버전

Overview

SpecVital is a platform for analyzing and visualizing test files in GitHub repositories.

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

Repositories

core

Role: Tree-sitter based test parser engine

ItemDescription
LanguageGo
TypeLibrary
Consumercollector

collector

Role: Analysis worker

ItemDescription
LanguageGo
Dependenciescore, 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)      │                              │
│                    └────────────────────────────┘                              │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

Flow:

  1. User requests analysis with GitHub URL
  2. web enqueues job to River queue (PostgreSQL)
  3. collector worker consumes job from River
  4. collector parses tests via core and stores results
  5. web reads results from DB
  6. User views visualized results

Deployment

Platforms

ServicePlatform
PostgreSQLNeon
web-backendRailway
web-frontendVercel
collector-workerRailway
collector-schedulerRailway

Scalability

ServiceScalabilityNote
webHorizontalStateless
collector (Worker)HorizontalStateless, parallel processing
collector (Scheduler)Single instanceCron jobs

Open-source test coverage insights