ინტერნეტ სივრცეში ახალი ექსპერიმენტი - Trillion Characters - გამოჩნდა, რომელიც ვებ-დეველოპმენტის ტრადიციულ მიდგომებს კითხვის ნიშნის ქვეშ აყენებს. პროექტი წარმოადგენს რეალურ დროში მომუშავე კოლაბორაციულ ტილოს, სადაც ნებისმიერ მსურველს შეუძლია ტექსტის აკრეფა.
ამ პროექტის მთავარი ინოვაცია მისი ტექნოლოგიური ბაზაა. აპლიკაცია აგებულია Datastar-ზე, რომელიც სულ რაღაც 11 კილობაიტს იწონის. React-ის, Vue-ს ან Svelte-ისგან განსხვავებით, Datastar-ი კლიენტის მხარეს არანაირ ლოგიკას არ ტოვებს.
როგორ მუშაობს სისტემა?
ტრადიციული ვებ-აპლიკაციებისგან განსხვავებით, სადაც ბრაუზერი ასრულებს რთულ გამოთვლებს, აქ ყველაფერი სერვერზეა გადატანილი. მონაცემები კლიენტს მიეწოდება SSE (Server-sent events) ნაკადის მეშვეობით. პროცესი ჰგავს ვიდეოს სტრიმინგს, თუმცა ამ შემთხვევაში „ფილმი“ HTML-ის კოდია.
ბრაუზერის ფუნქცია მხოლოდ მიღებული HTML-ის რენდერინგით შემოიფარგლება. ეს მიდგომა ამცირებს კლიენტურ დატვირთვას და ზრდის სისტემის გამტარუნარიანობას. Brotli-ს შეკუმშვის ალგორითმის გამოყენებით, სისტემა აღწევს შეკუმშვის საოცარ კოეფიციენტს, რომელიც 50-დან 4000-ჯერ აღემატება სტანდარტულ gzip-ს.
არქიტექტურული გადაწყვეტა
პროექტი იყენებს CQRS (Command Query Responsibility Segregation) არქიტექტურულ შაბლონს. ეს ნიშნავს, რომ მონაცემთა ჩაწერა და კითხვა მკაცრად არის გამიჯნული. როდესაც მომხმარებელი კლავიატურაზე კრებს სიმბოლოებს, ეს ბრძანებები რიგდება და სერვერი მათ ფიქსირებული სიხშირით ამუშავებს.
სიმბოლოები ინახება LMDB ბაზაში, რომელიც მეხსიერებაზე დაფუძნებული, უსწრაფესი „key-value“ საცავია. მონაცემთა სტრუქტურა ოპტიმიზებულია 45x45 ზომის „ჩანკებად“, რაც საშუალებას იძლევა, მომხმარებელმა მხოლოდ ის ნაწილი მიიღოს, რომელიც მის ეკრანზე ჩანს.
ეკონომიურობა და ეფექტიანობა
აღსანიშნავია, რომ მთელი ეს სისტემა, რომელიც მილიონობით სიმბოლოს მართავს, მუშაობს გერმანიაში განთავსებულ იაფფასიან VPS-ზე, რომლის ღირებულება თვეში სულ რაღაც 5,52 ევროა. ავტორი, Elias de Jong, ამტკიცებს, რომ კარგად ოპტიმიზებულ არქიტექტურას არ სჭირდება ძვირადღირებული ინფრასტრუქტურა.
Trillion Characters არის დასტური იმისა, რომ თანამედროვე ვებს შეუძლია იყოს სწრაფი, რეალურ დროში მომუშავე და ამავდროულად, უკიდურესად მსუბუქი. ეს მიდგომა ახალ ჰორიზონტებს უხსნის დეველოპერებს, რომლებიც ეძებენ ალტერნატივას მძიმე JavaScript ფრეიმვორკებისთვის.



დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.