Я кивнул и попытался помочь, но обычная для меня легкость в решении технических проблем куда-то исчезла. Приходилось прикладывать огромные усилия, чтобы следить за объяснениями, задавать уточняющие вопросы. То, что раньше решалось за пять минут, растянулось на полчаса.

– Спасибо, – сказала Лена, когда мы наконец разобрались с проблемой. – Ты как-то… устал, что ли?

– Еще не до конца восстановился после болезни, – ответил я.

Она кивнула с пониманием, но я видел в ее глазах беспокойство. Неужели мои проблемы так заметны?

К обеду стало ясно, что обычный рабочий ритм для меня теперь недоступен. Каждый телефонный звонок превращался в пытку – голоса в трубке звучали как далекое эхо, разобрать слова было практически невозможно. Я научился сразу переводить все звонки на коллег или просить перезвонить по видеосвязи, где хотя бы мог читать по губам.

Но самое страшное ждало впереди – встреча с заказчиком.

В два часа мы собрались в переговорной комнате. Дима, я, Лена и еще двое коллег. Напротив разместились три представителя «Техносферы» – технический директор, проектный менеджер и еще один человек, имени которого я не расслышал при представлении.

– Итак, – начал технический директор, мужчина лет пятидесяти с седеющими висками. – Мы хотели бы увидеть, как продвигается разработка и обсудить некоторые моменты интеграции с нашими существующими системами.

Дима включил проектор и начал презентацию. Я старался следить за его рассказом, но быстро понял, что теряю нить. Слова размывались, смешивались с фоновыми звуками – шумом кондиционера, скрипом стульев, шорохом бумаг.

– Антон, – обратился ко мне Дима, – расскажи про архитектуру базы данных.

Все взгляды устремились на меня. Я встал, подошел к доске, взял маркер. Архитектура базы данных – это я знал наизусть, мог рассказать с закрытыми глазами. Но когда начал говорить, услышал свой голос как будто со стороны – слишком громкий, неестественный.

– Мы используем распределенную архитектуру с шардированием по…

– Простите, – перебил меня технический директор. – Вы не могли бы говорить чуть тише? И медленнее?

Я почувствовал, как краснеет лицо. Значит, я действительно говорю слишком громко. Попытался скорректировать громкость, но теперь не был уверен, слышно ли меня вообще.

– …с шардированием по пользователям, что обеспечивает горизонтальное масштабирование, – продолжил я тише.

– А как решается вопрос консистентности данных при такой архитектуре? – спросил проектный менеджер.

Я понял вопрос не полностью, но по ключевым словам догадался, о чем речь.

– Мы используем eventual consistency с компенсирующими транзакциями…

– Но это создает риски для финансовых операций, – возразил третий представитель заказчика.

Его фразу я не расслышал совсем. Видел, что он что-то говорит, но слова не доходили.

– Извините, не расслышал, – честно признался я. – Можете повторить?

– Я сказал, что eventual consistency создает риски для финансовых операций, – повторил он громче.

– Да, вы правы, – начал я, но понял, что не знаю, как продолжить. Обычно в таких дискуссиях я легко подхватывал реплики коллег, развивал их мысли, приводил контраргументы. Теперь же я терялся, не успевал за ходом беседы.

Дима заметил мое замешательство и плавно перехватил инициативу:

– Для финансовых операций мы предусмотрели отдельный модуль с ACID-транзакциями…

Я отошел к стене, благодарный за спасение, но одновременно чувствуя себя неполноценным. Остаток встречи прошел в тумане. Я кивал в подходящих местах, делал записи, которые потом не смог разобрать, и мечтал только об одном – чтобы это закончилось.