FastComments.com Blog
Wed Apr 01 2026
...

FastComments аутоматски систем за рутирање транспорта

Introduction

FastComments аутоматски систем за рутирање транспорта (FARTS) је наш транспортни и сервисни слој. FARTS помаже у смањењу загушења, рутирању саобраћаја на основу локације корисника и потенцијално учитавању у будућности. Састоји се од неколико различитих система, гео‑свесног DNS слоја, DB проксија, репликације базе података, управљања SSL сертификатима, реверзног проксија и CDN‑а који користи LRU кеш на диску за кеширање ресурса на ивицама.

Active-Active

Најновија верзија FART садржи уграђени прокси и слој репликације за нашу базу података. Ово омогућава FastComments да буде Active-Active са глобалном доступношћу за писање, што обезбеђује да наши FARTS буду коначно конзистентни. More details here.

Приступ који смо заправо применили рано је био да видимо да ли можемо да направимо active‑active форк MongoDB‑а. Један од наших инжењера (Sloperators) успео је то да оствари са Opus 4.6, али смо одлучили да је ризик већи него изградња нашег сопственог изолованог система.

Rust at Scale

Део мотивације за креирање FART‑а био је да заменимо неке постојеће сервисе написане у Java‑и. Након што смо размислили о томе, одлучили смо да их консолидујемо у један Rust сервис како бисмо смањили трошкове извршавања. Ово је прихватљив компромис јер не распоређујемо FART често. FART се компајлира са LTO, тако да можемо заиста да га искористимо.

Потрошили смо много времена покушавајући да подесимо стари Java систем различитим GC‑овима и сл., а на крају смо одлучили да async Rust + Mimalloc значајно боље ради на истом хардверу са много нижим захтевима за меморију, тако да је прелаз био очигледан.

Rust се испоказа као изузетно добар за мрежни код који користи заједничке хипове и закључавања. Међутим, није имуни на проблеме у време извршавања. Важно је напоменути да је код написан од стране LLM‑а у Rust‑у прилично склони застојима, а решење је дизајнирати системе као лако разумљиве машинe стања, уместо гомиле async/await.

The FART Master

Свака распоређивања садрже свој сопствени FART Master. Master је одговоран за оркестрацију cron‑ова, вебхукова и слично.

Customer Impact

FART систем је у продукцији отприлике годину дана. Тек недавно смо извршили миграцију на Active‑Active распоређивање. Постоји неки утицај при читању сопствених уписа преко региона, што је обрађено у горе наведеном блогу и у документацији.

FART ради тихо у позадини, иако се његово присуство увек осећа. Надамо се да ћете сматрати да су наши системи бржи за ваше случајеве употребе (углавном корисничке акције које резултују променама података биће брже у неким регионима).

Deployments

Распоређивање користи исти глобални систем оркестрације који користимо за распоређивање самих сервиса. FART документација препоручује да Sloperators никада не верује распоређивању, увек провери утовар пре пуштања.

Након распоређивања, FART аларми прате политику ескалације: прво соба, затим спрат, затим зграда.

In Conclusion

Кажу да је интернет низ цеви, али је у ствари низ тута.

Као и сваки велики издање, радује нас што смо успели да одвојимо време за оптимизацију, тестирање и правилно пуштање ове промене. Узбуђени смо због онога што долази у будућности. FastComments би требао боље скалирати и имати бољу доступност на дуги рок са овим радом. Како стоји у FART упутству: „Ако осетите нешто, кажите нешто“. Јавите нам испод ако откријете било какве проблеме.