デプロイ・トポロジ(単一/複数レプリカ)を確定し、並行制御の状態を DB に寄せる
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 32/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- backend, databases, distributed-systems
Hướng nghiên cứu
Bắt đầu bằng cách đọc apps/web/server/utils/db.ts và stripe.ts, sau đó xem xét issue #15 và các mối lo ngại về tính đồng thời được liệt kê. Công việc được coi là hoàn tất khi giả định về replica đã được quyết định một cách rõ ràng và policy xác định việc sử dụng storage dựa trên DB cho kiểm soát tính đồng thời, rate limiting, tính idempotent và ngăn chặn phát hành trùng lặp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
前提の格上げ(#39): デプロイ・運用先(基盤)自体が未確定と整理した。論点を「まず運用先を決める。トポロジはその下流」に引き上げる。運用先が決まるまでは単一レプリカ前提とし、共有状態を DB に寄せる(プロセス内シングルトンをやめる)方針は運用先非依存に今確定する。
背景
apps/web/server/utils/db.ts / stripe.ts は「サーバーインスタンスごとに 1 つ生成しキャッシュ」= プロセス内シングルトン前提で、単一レプリカか複数レプリカかという前提が暗黙に埋まっている。
なぜ今決めるか
複数レプリカに移ると、インメモリ状態に依存した機構が一斉に壊れる — レート制限(#15、インメモリでは効かず共有ストアが要る)、ジョブの多重実行、二重発行防止、冪等ガード。これらの実装形はレプリカ前提に規定されるため、実装する前に前提を確定する方が安い。後から全部 DB 化するのは高い。
論点・選択肢
- 単一レプリカで進める(シンプル)か、最初から複数レプリカ耐性(共有すべき状態は DB/外部ストアのみ)を前提にするか。
- 前提が決まると: #15 のレート制限ストア、非同期基盤のリーダー選出要否、突合ジョブの排他制御、二重発行防止(ドメインモデルの
(member, term)制約)が決まる。 - NeoShowcase の運用実態(レプリカ数・スケール方針)は情報不足なら当面「単一レプリカ前提、共有すべき状態は DB に置く」と宣言しておくと後続が安定する。
受け入れ条件
- レプリカ前提が宣言され、並行制御・レート制限・冪等・二重発行防止の状態を置く場所(プロセス内不可、DB へ)の方針が決まっている。
関連
#15(レート制限)の実装形を左右する。お金の記録・非同期基盤・ドメインモデルの並行制御と接続する横断前提。
- Ngôn ngữ chính
- TypeScript
- Star
- 0
- Fork
- 0
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của traPtitech/Checkin
-
bug documentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
traPtitech/Checkin#87 ·
-
documentation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 95/100
traPtitech/Checkin#64 ·
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
traPtitech/Checkin#59 ·
-
documentation enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
traPtitech/Checkin#95 ·
-
bug
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
traPtitech/Checkin#92 ·
Tất cả issue của traPtitech/Checkin
Issue tương tự
-
[Bug] Pod detail shows CPU usage ten times too high, and throws on decimal memory suffixesCó thể đã có người làm @RaphaelFakhri đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 11 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
remotion-dev/remotion#12957 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
tyrasd/overpass-turbo#871 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày