
Билет за Ed Sheeran? Мисията (не)възможна!
За много от нас 26 октомври ще се запомни с един дълъг ден изпълнен с неистови опити да си закупим билет за едно от най-очакваните събития през 2024г - мега концерта на Ed Sheeran в София. Въпреки че билетите почти се разпродадоха в рамките на ден, много хора предпочетоха да си спестят нервите и изгубеното време и взеха решение да посетят събитието в Румъния, което ще се проведе седмица по-рано на 24 август 2024г.
Статията ще бъде малко по-техническа и е вероятно да не можете да разберете в детайли част от написаното, за което се извиняваме предварително.
Как започна всичко?
Ticket Station Bulgaria обявиха, че в 09:30 на 26 октомври ще пуснат сайт в който можем да се наредим на опашка и когато редът ни дойде да закупим своите билети. Речено сторено, в 09:35 сайтът вече беше онлайн и в 10:00 вече се появиха първите късметлии с ценните “хартийки”.
Още докато си чакахме търпеливо реда, от професионално изкривяване, отворихме нашите browser development конзоли и какво да видим, console.log-ове, които print-ват разни обекти. “Случва се” си казахме и не обърнахме достатъчно внимание, но чакай малко, какво е MyPosition.vue, това не трябва да е там. Защо разработчиците са качили sourcemap-а в production build?!, това е сериозен пропуск който leak-ва целия клиентски код във вида в който програмиста го е писал.

Тъй като разработчиците на тази система са ни предоставили възможност да прочетем целия им клиентски код, приятно форматиран и четим, ние се заехме с частта да го разгледаме. Ticket Station са взели решението да разработят малка система, която да служи като портал между основната им система за закупуване на билети и хилядите хора, които чакат своя ред на опашка.
-
Проблем номер - Client-side
Ticket Station са взели решението цялата им програмна логика, свързана със системата за чакане, да бъде изцяло client-side, което означава, че при презареждане на страницата, загуба на интернет и др, ние губим своето място и чакането започва отново. Тук най-потърпевши са хората, които не са използвали настолни компютри и лаптопи, а са чакали своя ред на мобилен телефон. Екраните на мобилните телефони се изключват и вероятността изобщо да не ви се execute-не javascript който да ви покаже заветния бутон КУПИ е доста голям. Архитектурата на подобно приложение е трябвало да бъде съвсем различна, където чрез потребителски акаунт да заемеш своето място в опашка, която да се пази независимо дали си на компютъра или си отворил своя браузър. Като при достигане на твоя ред можеше да получаваш известие посредством имейл или в реално време да виждаш колко хора преди теб остават. Истинско оставащо време, а не такова каквото ни предложиха Ticket Station. -
Лош responsive design и UX.
Много хора не видяха заветния бутон "КУПИ" тъй като той се показваше най-отдолу без системата да те скролва и без потребителя да има представа, че неговия ред е дошъл. Други имаха проблем с валидацията на имената и потвърждаване на общите условия в основната система за закупуване на билети поради лош UX и некоректни валидации. -
Натоварени системи.
Организаторите не успяха да осигурят надеждна система, която да успее да обслужи всички хора, като много често системата им не смогваше и връщаше хората обратно на опашка. Тук в защита на Ticket Station можем да кажем, че част от проблемите не са по тяхна вина, а се дължат на проблем със системите на трети страни над които те нямат контрол. -
Бутафорна опашка
При POST request към AWS endpoint d3ma0lvfw13ump.cloudfront.net/assign_queue_num системата автоматично генерира api_request_key във формат UUID който ключ е валиден и може да се ползва без да е нужно да се чака на опашка. Всеки с технически познания може да генерира своя ключ, след което да го използва директно в основния сайт на Ticket Station ticketstation.bg/bg/api={KEY}&event_id=Sample&home=false като това автоматично ще ви даде възможност да закупите билет без да се редите на “опашки”. Нечестно нали? Цялата валидация дали ви е дошъл реда, се свежда до един ред клиентски код:this.myPosition <= this.queuePosition
което е един голям пропуск в сигурността и равнопоставеността за която Ticket Station говориха дни по-рано. -
Обратна връзка и потвърждение
24 часа след стартирането има хора, които все още не знаят дали са закупили успешно билети или не, защото системата не им е върнала нито имейл, нито екран в който да е описано, че всичко е приключилo успешно.
Реализирането на сложната задача да обслужиш над 100 хиляди души в рамките на няколко десетки минути не е толкова тривиална задача. Хората, които не са технически запознати обаче, не осъзнават в детайли потенциалните проблеми пред които са изправени разработчиците. Това разбира се не им е работа. Всеки човек очаква в рамките на няколко минути да влезе в дадена платформа, да закупи своя билет и да продължи нормално своето ежедневие. За съжаление набързо скалъпената платформа от страна на Ticket Station и лошите инженерни решения превърнаха този 26 октомври в едно голямо преживяване и луда борба в опит да се сдобият с билет за любимия изпълнител.
Дано разработчиците и организаторите от Ticket Station да направят своите изводи от случилото се. А междувременно всички ние ще се видим на концерта в България (или Румъния), живот и здрав!

Други статии

Хелоуин 2025: Новите тенденции, костюми и историята зад празника
Хелоуин се е превърнал в един от най-празнуваните и културно влиятелни празници в света. От своите скромни корени в келтските традиции до днешната си глобална популярност, този празник е време за креативност, въображение и сплотеност между хората. През 2025 г. Хелоуин продължава да се развива, отразявайки нови културни влияния, технологични иновации и все по-силно усещане за екологична отговорност.

20 от най-красивите Коледни базари в Европа
Декември е на прага, носейки със себе си аромата на горещ шоколад, канела и всички онези празнични подправки, които правят зимата толкова уютна. По това време на годината Европа се превръща в приказно място, където коледните базари разпръскват магия и топлина, привличайки хора от целия свят, които искат да усетят истинския дух на празника. Разхождайки се из украсените площади и старинните павилиони, човек сякаш се пренася в друго време, където всичко е изпълнено с красота и празнично вълшебство.

7 неща, които хотелите не искат да знаете (но ще ви спестят пари)
Всички обичаме усещането за чисти и ухаещи чаршафи, току-що почистена стая и удобството да не мислим за нищо по време на почивка. Хотелите са създадени, за да ни предложат това бягство от ежедневието, но истината е, че зад бляскавите фасади и усмихнати рецепционисти се крият редица тайни, които могат да олекотят портфейла ви значително.

10 рибни ресторанта във Варна, които ще искате да посетите повторно
Варна е не само перлата на Черно море, но и истински рай за любителите на рибните ястия. Със своето стратегическо разположение и достъп до пресни морски дарове, градът предлага множество ресторанти, които се гордеят със своите рибни специалитети. В тази статия Ви представяме най - добрите 10 рибни ресторанта в морската столица, които не само предлагат невероятни морски ястия, приготвени с майсторство и любов, но допълват кулинарното приключение със спиращи дъха гледки, запомнящи се залези и уютна атмосфера.