freeCodeCamp / freeCodeCamp/scripts
[feat]: ultimate normalization script
- 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
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