TECHDEV · Công cụ open-source

memgraph

Tháng trước, một team đã đảo ngược quyết định về hàng đợi mà không ai nói được vì sao thiết kế đầu tiên được chọn, bằng chứng nào đứng sau nó, hay ai đã duyệt bản thay thế. Thiết kế cũ vẫn còn cắm nửa chừng như một "fallback", lặng lẽ phụ thuộc vào thứ vừa bị thay thế. Họ chỉ phát hiện ra ở production. RAG dạng vector nhớ được văn bản. Nhưng nó không nhớ được quyết định — cái gì đã được chọn, nó dựa trên cái gì, cái gì đã mâu thuẫn với nó, và cái gì đã thay thế nó. memgraph là một đồ thị cục bộ tí hon cho đúng việc đó: mỗi quyết định, sự kiện và ràng buộc là một node có nguồn gốc, liên kết với nhau bằng quan hệ hỗ trợ, mâu thuẫn, thay thế hay phụ thuộc.

Node.js 18+ · Không phụ thuộc thư viện nào · MIT

Nó làm được gì

Một CLI Node.js duy nhất, không phụ thuộc thư viện nào. Không mạng, không server, không embedding. Nơi lưu trữ là một file JSON duy nhất, commit được ngay cạnh code của bạn.

memgraph init
memgraph add --type decision --title "Use Postgres LISTEN/NOTIFY for the queue" --source "ADR-014"
memgraph add --type fact --title "NOTIFY payloads cap at 8000 bytes" --source "Postgres docs"
memgraph link m-002 m-001 --relation contradicts
memgraph add --type decision --title "Switch the queue to Redis Streams" --source "ADR-019"
memgraph supersede m-001 m-003 --reason "payload cap makes NOTIFY the wrong tool"

Các lệnh chép nguyên từ README của memgraph ("What it does"). Ba câu hỏi nó trả lời nhanh:

Câu hỏiLệnh
Vì sao chúng ta quyết định thế này?memgraph why m-003 — nguồn gốc, các node ủng hộ, mâu thuẫn, thay thế
Có gì đã cũ hay mâu thuẫn không?memgraph check — mâu thuẫn chưa giải quyết, node đang sống dựa trên quyết định đã bị thay thế, vòng phụ thuộc, claim không có nguồn
Chúng ta đang tin điều gì?memgraph list — mọi node, node đã bị thay thế được đánh dấu

Dùng thử ngay

# 1. Clone
git clone https://github.com/techdevfun/memgraph.git
cd memgraph

# 2. Không cần cài gì (Node.js 18+). Tuỳ chọn: link lệnh
npm link   # makes `memgraph` available everywhere

# 3. Bắt đầu một đồ thị cho project của bạn
memgraph init
memgraph add --type decision --title "Use Postgres for the queue" --source "ADR-014"
memgraph why m-001

Các lệnh chép nguyên từ README của memgraph ("Try it in 3 steps").

Repo có sẵn một đồ thị mẫu nhỏ của một team — một quyết định về hàng đợi, sự kiện đã "giết" nó, bản thay thế, và một fallback còn sót lại vẫn phụ thuộc vào thiết kế đã chết. Chạy sh examples/run-demo.sh, rồi memgraph check: nó báo đúng hai vấn đề — fallback reader phụ thuộc vào một quyết định đã bị thay thế, và một câu hỏi mở không có nguồn. Mâu thuẫn giữa sự kiện payload-cap và quyết định cũ thì không bị gắn cờ: quyết định cũ đã bị thay thế, nên mâu thuẫn đó là lịch sử đã giải quyết, không phải xung đột đang sống.

Thêm lệnh

# Ghi bằng chứng và ràng buộc, không chỉ quyết định
memgraph add --type fact --title "Peak depth hit 40k jobs" --source "metrics 2026-10-12"
memgraph add --type constraint --title "Queue must survive a broker restart" --source "SLO doc"

# Liên kết chúng: supports | contradicts | supersedes | depends-on
memgraph link m-001 m-002 --relation supports

# Đầu ra machine-readable cho script và CI
memgraph why m-003 --json
memgraph check --json
memgraph list --type decision --json

Các lệnh chép nguyên từ README của memgraph ("More commands").

Cổng CI

memgraph check thoát với mã 1 khi phát hiện lỗi, nên nó hoạt động như một cổng CI trên thư mục decisions/: một PR tạo ra mâu thuẫn, hoặc vẫn phụ thuộc vào một quyết định đã bị thay thế, sẽ fail trước khi merge.

memgraph check   # thoát 1 khi phát hiện lỗi — chạy trong CI trên thư mục decisions/

Hành vi lấy từ README của memgraph ("CI gate"), không phải đoạn chép nguyên.

Đây KHÔNG phải gì — và đối thủ hơn chúng ta ở đâu

Mã nguồn + README trên GitHub → · Báo lỗi → · ask@techdev.fun

Giới hạn

Giấy phép

MIT — xem LICENSE trong repository.

Công cụ liên quan

Các công cụ mã nguồn mở khác của TECHDEV: sessguard, runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, ggufit, leaseguard, factfence, jsonfold

Đóng góp ý kiến

Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.