Skip to content

SpecVital Architecture

🇰🇷 한국어 버전

Overview

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

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

Repositories

core

Role: Tree-sitter based test parser engine

ItemDescription
LanguageGo
TypeLibrary
Consumerworker

worker

Role: Analysis workers (analyzer, spec-generator)

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

Flow:

  1. User requests analysis with GitHub URL
  2. web enqueues job to River queue (PostgreSQL)
  3. worker (analyzer) consumes job from River
  4. worker 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
worker-analyzerRailway
worker-schedulerRailway

Scalability

ServiceScalabilityNote
webHorizontalStateless
worker (Analyzer)HorizontalStateless, parallel processing
worker (Scheduler)Single instanceCron jobs

Open-source test coverage insights