Golang
CQRS-ты жүзеге асыру кезінде қандай мәселелерге тап болдыңыз? Мәліметтердің тұтастығы, жаңарту жиілігі?
150 миллион қолданушыны қолдайтын, 75 миллион DAU, 225 миллион MAU, 1.2M оқу / 300k жазу пик QPS, 5 миллион бір уақытта қолданушы, жылына 60 PB жаңа деректер, жыл сайын 30% өсу, SLA 99.95%, p99 <200 мс оқу үшін, <300 мс жазу үшін. КОНТЕКСТ WhatsApp-қа ұқсас таралған хабарламалар жүйесін жобалау, ол 1:1 және топтық чаттарды қолдайды, хабарламаларды жеткізу, онлайн-статусты көрсету және мультимедиялық файлдарды (суреттер, видеолар, аудио) тасымалдау. Жүйе жоғары қол жетімділікті, төмен кідірісті, жоғары параллелизмді және ғаламдық масштабтауды қамтамасыз етуі керек. ФУНКЦИОНАЛДЫ ТАЛАПТАР - Жеке (1:1) және топтық чаттарды қолдау, қатысушыларды қосу/алу мүмкіндігімен - Мәтіндік және мультимедиялық файлдарды жіберу және қабылдау Қызмет немесе клиент деңгейінде end-to-end шифрлау механизмінің нақты жүзеге асырылуы байқалмайды, жалпы аннотациядан басқа. - Шардинг және репликация туралы нақты сипаттама жоқ, chat_id немесе user_id бойынша масштабтау және ақауларды төзімділікті қамтамасыз ету үшін. - Офлайн синхрондау және жеткізу туралы нақты компонент немесе механизм жоқ. - Жүктемені теңестіру қалай жүзеге асырылатыны, әсіресе пиктік жүктемелер кезінде. **Нақты мәселелер:**
Бұл кодта контексттер қайда аяқталады?
Ағымдағы жобаға қолданылатын стек туралы толығырақ айта аласыз ба?
REST API сервері (код репозиторийі) Kubernetes-те жұмыс істеу үшін не істеу керек?
Process әдісінде қателер неге қайтарылмайды? Оны түзеп, толық жұмыс істейтін кодты жіберу керек.
Жобаңызда қандай кітапханаларды қолдандыңыз?
Жаңа жұмыс орнына таңдау кезінде қандай критерийлерді қолданасыз?
Redis-ті кэш және хабарлама брокері ретінде пайдалану бойынша сіздің тәжірибеңіз қандай деңгейде?
Жұмыста қандай көрсеткіштерді қолдандыңыз? Практикада не қолдандыңыз? Wildberries-те?
Go тілінде шартты айнымалы (sync.Cond) қалай жұмыс істейді?
Жүйеде шамамен қанша микросервис болды?
ACID дегеніміз не?
Сіз аналитикпен жұмыс істедіңіз бе, яғни техникалық тапсырма бойынша жұмыс істедіңіз бе? Ол қалай көрінетін?
Сіз үшін кеңсе/гибридтік жұмыс форматы қаншалықты қабылданады (кеңсе [локализация] арасында)?
Сіз қандай сұрау оптимизациялау әдістерін қолдандыңыз? EXPLAIN ANALYZE және сұрау жоспарын қалай қарайсыз?
Жадыны тұрақты ету үшін қалай жасауға болады (бірегей таңбалардың санынан тәуелділікті жою)?
Электронды пошта жіберілгенін қалай бақылап, сәтсіз болған жағдайда не істеу керек?
Ағымдағы жұмыс орныңыздағы жоба, команда және негізгі тапсырмалар туралы айтыңыз.
Біз нақты картаның элементіне сілтеме/мекенжай ала аламыз ба?