freeCodeCamp / freeCodeCamp/scripts

[feat]: ultimate normalization script

Đang mở
#222 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
17
Fork
16
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Going forward, there are likely many times we may want to normalize records. As such, we need a smart script:

**Musts**

- [ ] not bring down production to run script
- it should be a script we can tune to **not** hammer the db, and quietly run in the background
- [ ] easy to define/add transformations
- [ ] fault tolerant
- [ ] keep track of versioning
- must not repeat work - the script should be stopped/started without hesitation, and start off where it left off
- [ ] fearlessly concurrent
- the api will write a `lastUpdated` field to the user record which should allow all ops to be done without losing data

**Niceties**

- [ ] dynamically asks database how loaded it is, and accordingly adjusts ops/rps

**Notes**

Currently, the idea is to add a `schemaVersion` field to the `user` record.

I would prefer to write this in Rust:
1) Ease of distribution
2) Strict typing

That said, this might go against _"easy to define/add transformations"_.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Không có tệp, bài kiểm thử hoặc điểm vào nào được nêu. Hãy bắt đầu bằng việc làm rõ các giao diện cơ sở dữ liệu và API, hành vi được đề xuất của user.schemaVersion, cũng như cách các phép biến đổi được định nghĩa và lập phiên bản. Hoàn tất cần bao gồm việc thực thi có thể tiếp tục, chịu lỗi và an toàn khi đồng thời, có thể được giới hạn tốc độ mà không lặp lại công việc hoặc ảnh hưởng đến môi trường production.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
rust
Lĩnh vực
backend, databases, tooling
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.