Poko goes PubSubHubBub!
Ar žinojai, kad visi jūs kartu belankydami puslapį sunaudojate kelis kartus mažiau interneto srauto, nei mes išnaudojame tikrindami blogų RSS? Taip - RSS tikrinimas yra tikrai nemažas darbas. Kadangi serverio galimybės, deja, ribotos, RSS srautų tikrinimas jau nuo pat pradžių mums buvo gan didelis galvos skausmas. Juk visi nori, kad įrašai Poko pasirodytų vos tik parašyti, bet vienintelis būdas mums sužinoti, kad įrašas atsirado, yra patikrinti RSS srautą. Tad iki šiol taip ir sukomės: dažniausiai atnaujinamus blogus tikrinome kas 10 minučių, ne taip dažnai atnaujinamus - kas valandą, na, o dar kitus - kas 3 valandas.
Tačiau Poko ne be reikalo turi beta ženkliuką ant savo logo - sistema kartas nuo karto nesuveikdavo taip, kaip reikia. RSS tikrinimui naudojome SimplePie biblioteką, kuri iš pradžių veikė labai gerai. Bet vėliau pradėjome pastebėti, kad visgi vietomis styro klaidų ausys - dalį jų pavyko susitvarkyti, tačiau dalis taip ir liko kažkur anapus kodo eilučių…
O tuo metu mes vis dažniau pastebėdavom, kad sistemoje susikaupia krūva netikrintų blogų. Tad pradėjom ieškoti sprendimų. Vienas variantas - XML-RPC pranešimai. Nors juos ir palaiko dauguma blogų varikliukų, šios technologijos trūkumas - blogo savininkas turi pats įrašyti mūsų XML-RPC URL prie savo blogo nustatymų. Plačiai apie tokią galimybę neskelbėm, bet kad tai padarys tik 2 žmonės - irgi nesitikėjom. Teko mesti visus kitus programavimo darbus ir imtis PubSubHubBub įgyvendinmo.
PubSubHubBub - tai technologija, kurios esmė yra tokia: blogeriui parašius įrašą, jo sistema (Publisher) praneša specialiam serveriui (Hub) apie naują įrašą. Šis serveris įrašą pasiima (t.y. patikrina RSS srautą), ir apie jį praneša serveriams, kurie tą blogą prenumeruoja (Subscribers). Taip tokioms tarnyboms kaip Poko nebereikia pačioms tikrinti RSS srautų - jos gauna naujų įrašų turinį tiesiai iš hub'o. Teoriškai kiekvienas gali turėti savo PubSubHubBub hub'ą. Tačiau turbūt dėl to, jog PubSubHubBub protokolas buvo sugalvotas vieno Google darbuotojo, hub'o vaidmenį atlieka ir Feedburner. Tad visiems, kurie naudoja Feedburner, niekuo rūpintis nereikia. O tarp Poko stebimų blogų tokių yra beveik 400.
Na va, 40% problemos jau išspręsta. Likusius 60% išsprendėme su Superfeedr tarnyba. Ši tarnyba tikrina RSS srautus ne rečiau nei kas 15 min. ir išnaudoja tą pačią PubSubHubBub technologiją - žodžiu, atlieka visą juodą darbą. O kartu ji veikia ir kaip hub'as - mes gauname pranešimus apie naujus įrašus tiesiai iš ten.
Tad nuo šiandien visi Poko stebimi blogai yra įdėmiai sekami pro PubSubHubBub akinius. Tai reiškia, kad nauji įrašai Poko turėtų atsirasti per kelias minutes nuo parašymo momento, o Poko naujausių įrašų puslapis tampa blogosferos pulso matuokliu!
Iliustracija: Noise to Signal.
– Aurimas
Ernestos pastaba: aš esu tas žmogus, kuris kasdien patikrina pasiūlytus blogus, sudeda juos į sistemą ir parašo laiškus visiems, kurie paliko savo el.pašto adresus. Nuobodžiausia šito darbo dalis - laukimas, kol pridėto blogo įrašai pirmą kartą atsiras sistemoje - tik tada siūlytojui galima pranešti geras naujienas (įrašus galima patikrinti ir rankomis, bet darbas ne pats įdomiausias). Priklausomai nuo to, kaip gerai sistema veikdavo, visas procesas užimdavo nuo 15 min. iki gero pusdienio. Bet nuo vakar naujai pridėtų blogų įrašai atsiranda akimirksniu. Ir aš vis dar negaliu patikėti. Ir kaskart, kai įrašai atsiranda akimirksniu, man norisi truputį pašokinėti. Tai turiu įtarimą, kad po sistemos atnaujinimo laimingiausias žmogus esu aš. Bet jei rašai blogą, džiugu turbūt ir tau.