Nếu những kiến thức trong video quá mờ hồ và mới lạ với bạn thì khoá học "System Design Say Hi" của Sydexa sẽ mang đến cho bạn những kiến thức cơ bản nhất, đặc biệt phù hợp cho các bạn sinh viên đang thực tập hoặc sắp ra trường muốn hiểu rõ hơn về cách mà cách hệ thống lớn hoạt động. Đăng ký trước hôm nay để nhận mã giảm giá 70% khi khoá học hoàn thành: sydexa.com/system-design-basic
@minhtrannhat33222 ай бұрын
Đội Marketing ý tưởng lớn còn đội Engineer cũng đỉnh của chóp khi mà có thể vẽ lại ý tưởng của đội Marketing
@sydexa.official2 ай бұрын
Tới tay mình thì bảo không làm được đâu nghĩ trò khác đi 😂😂😂
@trungphongtrinh678Ай бұрын
này team IT chứ team Marketing thì làm gì đâu bác nhể
@manhhoach25752 ай бұрын
Cho nhạc nhỏ hơn đi b, ae xem vì kiến thức chứ kp giải trí nên k cần nhạc quá to đâu
@sydexa.official2 ай бұрын
Cảm ơn anh đã góp mình, bọn em sẽ vặn nhỏ nhạc cho những bài sau. Anh ủng hộ kênh nhé 😊
@phamgiahuan2 ай бұрын
Hợp lí
@lamduong16662 ай бұрын
Nc nhỏ quá nhạc om sòm, ko nghe được rõ gì cả
@kermit113Ай бұрын
@@sydexa.official tắt luôn cũng được
@fantasyduc0201Ай бұрын
chuẩn ,vid để nhạc to át cả tiếng người nói
@policenguyen921317 күн бұрын
mình thật sự rất ấn tượng với nội dung kênh ạ, mong kênh ra nhiều video hơn để mình học hỏi ạ
@vuhoang41812 ай бұрын
Theo mình hiểu là họ đã vượt qua giới hạn bằng cách thay vì gởi từng thông báo đến từng user thì họ nhóm một group user lại xong rồi gởi 1 thông báo, tất cả cá user trong group đó đều sẽ nhận 1 message như nhau. Nếu muốn từng user nhận một thông báo khác nhau thì họ chỉ việc filter nội dung thông báo ở dưới app bằng user ID ?
@breakeract796Ай бұрын
đẳng cấp nhất là vẫn ở Amazon, Google, Apple khi push từng đấy data trong thời gian ngắn. Bản chất công việc của Doulingo là tạp batch noti để bên notification provider (apns/fcm) làm thôi
@HungTran-vp7dfАй бұрын
Đúng rồi. Vấn đề nằm ở đây
@danhphamthanh197Ай бұрын
chính xác, đẳng cấp của các công ty nghìn tỷ đô 😅
@thanhhatran2339Ай бұрын
tóm tắt video: thay vì gửi từng info user qua message queue thì nó gom lại thành 1 batch 500 user
@ThanhLe-tn7dlАй бұрын
kênh hay quá, kiến thức rất bổ ích, sub mạnh
@sydexa.officialАй бұрын
Cảm ơn bạn đã ủng hộ kênh nha 😘
@nguyenlehoangphuc6929Ай бұрын
Đã đki kênh sau 10s xem . Cố gắng nhé
@sydexa.officialАй бұрын
Cảm ơn bạn nhiều ạ 🥰
@phamtienthinh17952 ай бұрын
Thực sự trở thành fan của đội dev duolingo sau video này anh ạ
@sydexa.official2 ай бұрын
Team này quá đỉnh rồi 🤩🤩🤩
@nguyencraft01952 ай бұрын
có thể thêm phần giải thích 1 số thuật ngữ đặc thù như interim worker, dynamoDB, S3 bucket, AWS SQS, v.v được ko ạ :)
@sydexa.officialАй бұрын
Cảm ơn bạn đã góp ý, lần tới mình sẽ giới thiệu qua các thuật ngữ trong bài nhé. Mong bạn ủng hộ kênh ạ
@jackiedo73702 ай бұрын
Thực sự vẫn chưa thấy điểm gì đặc biệt của kiến trúc của Doulingo trong video này. - Việc sử dụng AWS SQS rồi bị limit chẳng khác nào tự bóp bản thân cả. Có thể sử dụng Kafka để có through put cao hơn nhiều. - Không biết worker code thế nào mà phải cần tới 5000 con chỉ để gửi 5tr messages, việc gửi async requests có thể dễ dàng gửi 50k ~ 100k http requests trên 1 con worker (mình từng gửi 50k request nhẹ nhàng trog 8s mà ko cần tối ưu gì nhiều). Trong video này endpoint tải cao nhất là ở bên nhận và xử lý notification thì tụi Google handle hết rồi.
@sydexa.official2 ай бұрын
Chào bạn, theo như bài viết của Duolingo thì sẽ như sau: - Việc sử dụng SQS vì họ muốn tận dụng Deduplication Window trong SQS, vì lúc sự kiện diễn ra có thể sẽ có nhiều người đội marketing bấm cùng lúc để có thể gửi noti nhanh nhất có thể, thay vì sử dụng queue thông thường (họ phải xử lý việc tránh trùng lặp hay locking) thì họ đẩy thẳng lên SQS và tận dụng Deduplication Window, SQS sẽ sẽ nhận diện là tin nhắn trùng lặp và bỏ qua, không thêm vào hàng đợi, giúp tránh việc gửi trùng lặp noti. Điều này giúp Offloading cho hệ thống, để cho SQS xử lý - Việc sử dụng số lượng lớn worker thì như trong bài thì do số lượng noti lên đến hơn 6 triệu noti, và dữ liệu của số noti đó được đề cập trong bài là mỗi task chiếm đến 7gb, nên việc fetch all về và để lượng worker nhỏ call async là không khả thi nên mới cần 1 số lượng lớn worker như vậy để có thể gửi song song hơn 6 triệu noti kia Bạn có thể tìm hiểu thêm tại bài viết gốc của Duolingo tại đây nha 😄 www.infoq.com/presentations/on-demand-notification-system/ Có gì góp ý thêm cứ phản hồi để chúng mình cập nhật trong các video sắp tới thật hay nhé 😊
@jackiedo73702 ай бұрын
@@sydexa.official - Việc tránh trùng lặp "exactly-once" Kafka cũng giải quyết được nhé bạn. - Còn việc fetch data 7Gb lên RAM hoặc dùng real-time database thì đâu có gì đặc biệt đâu. 6 triệu ko phải là con số quá lớn, đặc biệt đầu chịu tải là Notification của Google. Hướng tiếp cận của Duolingo là cách tiếp cận khá bình thường đối với dev senior.
@jackiedo73702 ай бұрын
@@sydexa.official - giải bài toán "exactly-once" Kafka vẫn giải đc bình thường. - còn việc load 7Gb vào Ram hay real time DB thì bình thường thôi chứ có gì đặc biệt đâu. Thấy cách tiếp cận của Duolingo đúng kiểu nhà giàu xài tiền chứ ko có gì sáng tạo
@quochuynguyen76222 ай бұрын
điều đặc biệt là ông nghĩ ông hơn gì team dev của doulingo mà viết cái qq gì vậy :)))) ông thử chứng minh là cách của ông tốt hơn bằng thực tế đi chứ ông mỏ méo gì
@jackiedo73702 ай бұрын
@quochuynguyen7622 bạn nghĩ ai cũng ở level như bạn à, bạn trẻ. Tôi đã nói ra vấn đề cách tiếp cận của Duolingo và giải pháp của tôi đã nói ở trên rồi. Cty tôi đang làm handle hơn chục tỷ message mỗi ngày, việc gửi hơn vài triệu notification cùng lúc là quá bình thường, và dùng ko quá 100 workers. Vì là dev của Duolingo đưa ra solution nên bạn nghĩ nó auto đúng và ko dám đưa ra phản biện thì bạn chẳng tiến xa hơn được trong ngành này đâu.
@datle28632 ай бұрын
Cảm ơn team rất nhiều. Em có lưu ý nhỏ cho team là trong sơ đồ ghi +5000 workers mà người đọc nói 500
@sydexa.official2 ай бұрын
Cảm ơn bạn nha 😘
@lecong16062 ай бұрын
Góp ý nho nhỏ, mình nghĩ giảm nhạc nền và giảm tiếng ồn sử dụng mic thu tốt hơn, video sẽ tốt và xịn hơn nha !
@sydexa.official2 ай бұрын
Mình đã tiếp thu ý kiến của bạn. Bạn xem video mới ra nhé 😍
@tanphamnhatminh75772 ай бұрын
Interim Worker và Notification Worker ở đây là các program được deploy trên EC2, ECS hoặc EKS hả admin
@sydexa.official2 ай бұрын
Đúng rồi bạn nha, cái này tuỳ bạn chọn
@minhtrannhat33222 ай бұрын
:v còn infra của Google/Apple cũng đỉnh handle hơn 1M RPS, tuyệt thật
@sydexa.official2 ай бұрын
Đỉnh 💦💦💦
@yuh5king1892 ай бұрын
Video hay quá anh, cho em hỏi anh làm video trên phần mềm nào v ạ?
@sydexa.official2 ай бұрын
Mình dùng After Effect nha
@longnhatho36782 ай бұрын
Mong b giảm nhỏ nhạc xuống
@sydexa.official2 ай бұрын
Cảm ơn góp ý của bạn, mình sẽ lưu ý cho những video sau. Mong bạn ủng hộ nhé.
@huykiu31642 ай бұрын
Bạn dùng phần mềm gì để tạo animation vậy ạ?
@sydexa.official2 ай бұрын
Mình dùng After Effect nha
@bulletsstorm3964Ай бұрын
Thanks video hay! Nội dung này là tin insider bạn có được hay bạn chỉ research và phân tích lại logic dựa vào những gì Doulingo tương tác với end user trả lại?
@sydexa.officialАй бұрын
Hi bạn, mình tham khảo thông tin từ Tech Blog của Duolingo ạ
@kyluatthepnhubenjamin2 ай бұрын
Quá giỏi đến từ đội ngũ doulingo.
@sydexa.official2 ай бұрын
😍😍😍 siêu đỉnh
@datdinh68002 ай бұрын
Anh đg làm công việc gì v ạ, nghe quấn quá
@sydexa.official2 ай бұрын
Mình làm Software Engineer nha
@cam2447Ай бұрын
cho mình xin tên nhạc với ad 😊😊
@sydexa.officialАй бұрын
Inspiring Aesthetic by BlueTreeAudio Đây nha sếp
@LMS11111-g2 ай бұрын
Mình có 1 bài toán là nếu như có 1 con push message vào kafka và có 2 consumer lắng nghe event và xử lý giả sử như ở con 1 và con 2 đều là thao tác insert nhưng con 2 ins fail thì nó bắn event fail lên kafka để con 1 remove bản ghi dó khỏi DB. Giả sử như lúc con 1 nó chưa kịp ins xuống DB và chưa có bản ghi đó thì đã lắng nghe event từ kafka thì thao tác xoá ko đc thực hiện thì coi như ở A vẫn ins được làm sao để giải quyết đc key này nhỉ mong được mọi người chỉ giáo
@sydexa.official2 ай бұрын
Rất cảm ơn câu hỏi của anh. Tuy nhiên là em chưa hiểu ý lắm. Anh có thể mô tả rõ hơn được không?
@LMS11111-g2 ай бұрын
@@sydexa.official dạ ý của em là em có 1 service đóng vai trò như 1 producer gửi messgage vào topic của kafka. Có 2 service đóng vai trò là consumer subcribe vào topic để nhận message. Giả sử như hai con đều thực hiện tác vụ insert xuống DB. Con service thứ 2 thực hiện insert fail và bắn mesage vào kafka để yêu cầu con thứ nhất xóa bản ghi đó khỏi DB(nếu đã insert). Nhưng ở đây giả sử tác vụ insert của service thứ nhất chưa hoàn thành và nó đã lắng nghe event fail từ kafka để tiến hành remove bản ghi đó khỏi DB nhưng lúc này tác vụ insert chưa thực hiện xong nên sẽ không có bản ghi đó để xóa, lúc này thì xem như A vẫn insert thành công gây ra sai lệch dữ liệu.
@sydexa.official2 ай бұрын
Mình có một số hướng như sau: Cách thứ nhất: thiết kế lại luồng của hệ thống. Lúc này hành động insert recorder vào db nên thực hiện trên một service thay vì 2 service như kia, thì việc thực thi db transaction sẽ đơn giản hơn. Cách thứ hai: nếu bạn vẫn muốn giữ nguyên thiết kế như vậy, thì cần đảm bảo Kafka message insert và Kafka message remove có cùng một key. (nhắc lại: message trong Kafka gồm key và value). Lúc này trong service bạn sẽ consumer message insert trước và chờ xử lý xong message này mới xử lý message remove. Hy vọng câu trả lời trên giúp bạn
@atle51532 ай бұрын
@@sydexa.official mình nghĩ với việc bỏ chung 1 service thì 2 thao tác bị ràng buộc trên cùng 1 db, nếu v lúc transaction diễn ra sẽ đảm bảo tính nhất quán(giải quyết đc vấn đề trên), nhưng không đáp ứng đc hiệu suất nhanh chóng ấy ad, chia ra như v chắc bạn ấy nhắm đến hệ thống lớn
@oaichocminhkhoc90712 ай бұрын
Rollback fail thì ghi log lại chứ, có affected row mà
@BllakFoxAuto2 ай бұрын
Lý do nút hình vuông là vì .... à mà thôi, ông nào backend chắc cũng hiểu:))))
@sydexa.official2 ай бұрын
À gì cơ 😂
@huantran6512 ай бұрын
Mình backend mà k hiểu, bạn giải thích cho mình với
@BllakFoxAuto2 ай бұрын
@@huantran651 thế bro có thấy khứa nào backend rành css khum, tại lười đó :)))
@huantran6512 ай бұрын
@@BllakFoxAuto à kk 😂😂😂
@bachle4148Ай бұрын
@@BllakFoxAuto tui fullstack nên cũng không hỉu =))
@khoa15822 ай бұрын
Nội dung ok nhưng phải đổi người đọc đi team. Phát âm tiếng anh sai, không trau chuốt từ ngữ, không nhấn nhá (chắc ông này là dev). Chúc team càng phát triển.
@sydexa.official2 ай бұрын
Cảm ơn ý kiến đóng góp rất chân thành của bạn. Nhóm sẽ ghi nhận và cải thiện ạ
@mintwuanchan9129Ай бұрын
Video này chạy ads của Doulingo luôn ;)))
@sydexa.officialАй бұрын
Thật ư???? 🤣
@lqhung6272Ай бұрын
Thuật toán của KZbin mà :)))
@ninhnguyen9408Ай бұрын
Video đỉnh quãi
@sydexa.officialАй бұрын
Cảm ơn bạn đã thích nhé.
@HungNguyen-ue1eu2 ай бұрын
Giọng đọc nhỏ quá ạ. Một vài đoạn mình nghe k rõ
@sydexa.official2 ай бұрын
Cảm ơn bạn, bài sau mình sẽ gào thét rõ hơn nhé ☺️
@huyminh95642 ай бұрын
@@sydexa.official ko cần gào thét hơn đâu bạn, Chỉ cần đọc rõ chữ hơn với giảm nhạc lại là được á.Chừ nói thật video này nghe chói tai vô cùng mặc dù thông tin trong video rất hay
@uuach731Ай бұрын
theo mn thì backend cho noti worker dùng ngôn ngữ gì thì phù hợp nhất nhỉ?
@sydexa.officialАй бұрын
Theo mình thì ngôn ngữ không quá quan trọng, chỉ cần chọn những ngôn ngữ mà mình quen thuộc và hỗ trợ được những yêu cầu mình mong đợi
@phamhuyhoang8741Ай бұрын
Kỳ lạ lúc mình làm thì nhớ là nếu gửi quá nhiều request tới api push của gg cùng lúc sẽ bị limit nếu cùng api key mà nhỉ? Nếu vậy gửi nhiều vậy chắc chắn bị chặn bởi gg hoặc apple
@sydexa.officialАй бұрын
Mấy công ty lớn hay quan hệ lắm 🌚
@phamhuyhoang8741Ай бұрын
@ haha maybe trước mình cũng làm bị gg chặn nếu quá 5000 rps. Sau phải đổi qua dùng channel vs app filter
@tutosolve2 ай бұрын
thực ra cũng chỉ là thông báo dạng Text thôi, Mình vẫn phục nhất Server của KZbin, Facebook, họ lưu trữ dạng video rất nặng, mà hàng ngày có bao nhiêu video đẩy lên, rồi hàng triệu người xem cùng 1 video, cứ thế này, trong tương lại lưu dữ liệu lớn nó khủng thế nào
@lowtechdev2 ай бұрын
bạn ko biết là mỗi data center của google và facebook có mặt ở khắp châu lục và mỗi châu lục server có kích cỡ ngang một sân bóng bộ nhớ lưu trữ phải gọi là gần như không có giới hạn vì tiền kiếm được mỗi ngày đều trích ra 1 ít để nâng hàng trăm Terabyte dung lượng
@tutosolve2 ай бұрын
@@lowtechdev thế mình mới phục server của họ. Nhiều lúc, mình sử dụng google ảnh được free 15GB mà mình cứ sợ 1 ngày nào đó server bị sập, mất hết ảnh, nên mình lưu ảnh vào ổ cứng riêng :)) Cảm ơn bạn thông tin hữu ích.
@sydexa.official2 ай бұрын
Theo dõi kênh nhé anh ơi, sau này kênh còn chia sẽ nhiều bài toán thú vị nữa.
@tannguyentrong5092 ай бұрын
600.000$ 1/8 doanh thu mua hdd
@TranquilityVast2 ай бұрын
do data center tụi nó lớn thôi bạn, mỗi cái có bài toán riêng và cách giải quyết tối ưu của từng nền tảng. Nói chung thì các hệ thống có traffic cao thì đều có cái hay
@anhungnguyen61222 ай бұрын
Kiến thức thì khá là hay nhưng có một vấn đề là nhạc nên để nhỏ lại, vì giọng đọc nhỏ thêm nhạc to nữa gây mất tập trung quá ad ơi.
@sydexa.official2 ай бұрын
Cảm ơn bạn nha, mình xin tiếp thu ạ
@nguyentrunghai41892 ай бұрын
ayza nhạc hơi to, thành ra khó nghe ad nói gì quá
@sydexa.official2 ай бұрын
Cảm ơn bạn, mình sẽ lưu ý cho những video sau nhé
@langdoo2 ай бұрын
Bạn làm ở dunligo hả
@sydexa.official2 ай бұрын
Mình tham khảo chia sẻ của Duolingo và kể lại câu chuyện của họ bạn nhé
@KhắcHùng-r5qАй бұрын
Mình chứ quan tâm đến nội dung, nhưng nhạc bạn ghép vào video còn to hơn tiếng của bạn cảm giác rất khó nghe.
@sydexa.officialАй бұрын
Mình cảm ơn góp ý của bạn và hoàn thiện hơn trong những video sau ạ. Bạn subcribe để nhận thông báo nhé
@Meonmimix69862 ай бұрын
Nghe xong vẫn chả hiểu gì
@sydexa.official2 ай бұрын
Bạn chưa hiểu chổ nào ☺️
@Meonmimix69862 ай бұрын
@@sydexa.official 1. Tại sao dùng queue không sợ trùng id. 2. Mấu chốt ở đây là các dịch vụ cho phép gửi 1 lần tới được nhiều người (vd: ios 500/lần, android 250/lần ????) chứ thiết kế hệ thống có ảnh hưởng gì? À, nếu ui là web thì đã thử nút tròn không có hiện tượng bấm nút tròn mà ở phạm vi hình vuông nút vẫn bấm
@Meonmimix69862 ай бұрын
@@sydexa.official xem lại không thấy trả lời nên làm lại 1. Vì sao dùng queue không sợ trùng id(lặp lại). 2. Hệ thống hoạt động do các dvu của ios và android cho phép gửi 500 và 250 user 1 lần. Dẫn tới làm giảm tải 250-500 lần. Chưa thấy thiết kế của doulingo giúp ích gì. Ngoài ra nếu UI là web thì nút hình tròn hoàn toàn không có hiện tượng bấm trong phạm vi hình vuông cũng kích hoạt
@sunbright74212 ай бұрын
Video được trình bày chỉnh chu vầy mà âm thanh bạn làm hơi chán ấy, mình nghe không rõ bạn nói gì luôn... Cảm giác như bạn bị nghẹt mũi á
@sydexa.official2 ай бұрын
Cảm ơn bạn đã góp ý. Team sẽ cố gắng làm tốt hơn trong những video sau ạ
@an-rua58472 ай бұрын
xem quảng cáo của duolingo cx thấy hay :)
@sydexa.official2 ай бұрын
Team nghiện quảng cáo 😂
@nhungthangbaooi9672 ай бұрын
Mình nghĩ bạn nên nói chậm lại và nhấn nhá 1 tí nữa là oke nha
@sydexa.official2 ай бұрын
Cảm ơn lời góp ý của bạn nha. 😘
@LostDataReal2 ай бұрын
Video nặng tính chất kỹ thuật nên hơi kén người xem 😅 Cố gắng bạn nhé ✨
@sydexa.official2 ай бұрын
Mong anh chị đồng hành cùng kênh ạ 🥰
@nonenone9702 ай бұрын
góp ý nên bỏ nhạc hoặc nhạc nhẹ
@mix4min2 ай бұрын
Mình thấy nhạc hay đấy chứ, khá là hợp với nội dung & hoạt ảnh của video. Xem rất là cuốn.
@sydexa.official2 ай бұрын
Cảm ơn anh chị nhé, em sẽ để nhạc nhỏ hơn. Mong anh chị theo dõi kênh nhé 😘
@Funny_clip-12312 ай бұрын
Quảng cáo của video này là của Doulingo ạ =))
@sydexa.official2 ай бұрын
Thật ưuuuu? Hahahaha
@manhhoach25752 ай бұрын
Vấn đề là tại sao lại chia ra android vs ios nhỉ
@sydexa.official2 ай бұрын
Android có cách gửi thông báo khác với iOS nè
@minhtrannhat33222 ай бұрын
Vì android phài dùng Firebase của Google ms gửi đk noti, còn Apple cũng có Api riêng, đây là độc quyền khi bạn nắm OS
@manhhoach25752 ай бұрын
@@minhtrannhat3322 vãi, ios thì k nói chứ android open source mà cũng only firebase á, k ngờ luôn
@mr.vuongfinance48262 ай бұрын
@@minhtrannhat3322 nếu gọi là độc quyền api của os thì google mới là đứa độc quyền :))))
@TuanNguyen-ro1nf2 ай бұрын
@@sydexa.official android hay iOS gì đều dùng firebase gửi đc mà. Có nhầm k ad
@ucnguyen-ow9ytАй бұрын
ủa bài trên viblo à bạn
@sydexa.officialАй бұрын
Mình có viết bài này trên duolingo xong làm lại video để minh hoạ rõ hơn. Cảm ơn bạn đã đón xem ạ
@dule60232 ай бұрын
Quá đình
@sydexa.official2 ай бұрын
Anh quá khen rồi 🤣🤣🤣
@dinhminh0212Ай бұрын
Nhạc thì to, nói thì bé. Khó nghe quá bạn ơi
@sydexa.officialАй бұрын
Cảm ơn bạn đã góp ý. Mình sẽ cố gắng hơn trong những video sau này.
@HoangTranTan-qg6djАй бұрын
Giọng bé khó nghe quá
@sydexa.officialАй бұрын
Cảm ơn bạn đã góp ý, mình sẽ cải thiện hơn trong những video sắp tới nhé.
@khoale868812 күн бұрын
hay vaiii
@32.ucmanh752 ай бұрын
hay
@sydexa.official2 ай бұрын
Cảm ơn bạn nha 💁
@phucloily3055Ай бұрын
lấy tiền đắp vào ? kêu là cao siêu :D
@sydexa.officialАй бұрын
Cảm ơn góp ý của bạn nha. Mong nhận được nhiều phản hồi của bạn trong những video sắp tới.
@ninjaqbolАй бұрын
Ngớ ngẩn nhỉ, nếu là tôi thì lên sẵn dữ liệu trước, ấn nút gửi luôn không lằng nhằng
@sydexa.officialАй бұрын
Cảm ơn góp ý của bạn nhé 🤩
@BunnyMan187 күн бұрын
Mình cũng nghĩ là đẩy vào queue trước, khi nào nhấn nút thì scale 5k workers consume từ queue gửi. nhưng không biết thời gian scale lên vậy mất bao lâu. Do mình chưa có kinh nghiệm về AWS