JAVA_IIBRARY Telegram 1705
image_2025-08-22_08-09-28.png
587.6 KB
Наткнулся на такой пост от сеньора, про предварительные условия для System Design:

1. Понимание цели

Разберись, что именно ты строишь, кто будет пользоваться и для чего это нужно.

2. Профиль трафика (read-heavy vs write-heavy)

Если система в основном читает (много пользователей просматривают данные), делай упор на кэширование, индексацию, реплики для чтения. Пример: каталог Netflix, карточки товаров Amazon.

Если в основном пишут (много аплоадов, входящих данных), подойдут очереди, пакетная запись, eventual consistency. Пример: сообщения WhatsApp, данные IoT-датчиков.

3. Консистентность vs доступность

Строгая консистентность нужна там, где ошибка недопустима (банки, бронирование).

Eventual consistency подходит там, где можно жить с устаревшими данными (Instagram, аналитика).

4. Требования к задержке

Реалтайм — оптимизация под низкую задержку через кэш или предвычисления. Примеры: гейминг, Zoom, подтверждение платежей.

Асинхронно — очередь и фоновые воркеры. Примеры: e-mail рассылка, генерация отчётов.

5. Масштабируемость

Закладывай рост ×10. Пример: Google Docs начинался маленьким, но сейчас обрабатывает миллионы правок одновременно. Uber — тысячи поездок в минуту. Используй stateless-сервисы и горизонтальное масштабирование.

6. Паттерны доступа

Оптимизируй под то, какие данные и как часто читаются: поиск по гео/локации (geo-hash + ElasticSearch), быстрый доступ к часто используемым ID (Redis/Memcached).

7. Рост данных и партиционирование

Продумывай шардинг заранее (по пользователю, времени, гео). Пример: комментарии YouTube шардуются по ID видео.

Холодные данные сжимай или архивируй (Gmail, Google Drive).

8. Обработка отказов

Используй ретраи, фоллбэки, circuit breakers.

Если API падает по таймауту → повтор + настройка таймаута (пример: Amazon payment retry).

Если кэш недоступен → фоллбэк в БД (пример: Reddit загружает комментарии из БД).

9. Безопасность и авторизация

Авторизация: OAuth / JWT (пример: логин через Google или Spotify).

Защита от абузов и ботов: rate limiting, CAPTCHA (пример: Gmail signup, формы).

10. Нужно ли писать всё самому?

Некритичные фичи лучше вынести в SaaS или сторонние API:

Платежи — Stripe, PayPal.

Хранение медиа — Cloudinary, S3.

Уведомления — Firebase, SendGrid.


👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131😁1



tgoop.com/Java_Iibrary/1705
Create:
Last Update:

Наткнулся на такой пост от сеньора, про предварительные условия для System Design:

1. Понимание цели

Разберись, что именно ты строишь, кто будет пользоваться и для чего это нужно.

2. Профиль трафика (read-heavy vs write-heavy)

Если система в основном читает (много пользователей просматривают данные), делай упор на кэширование, индексацию, реплики для чтения. Пример: каталог Netflix, карточки товаров Amazon.

Если в основном пишут (много аплоадов, входящих данных), подойдут очереди, пакетная запись, eventual consistency. Пример: сообщения WhatsApp, данные IoT-датчиков.

3. Консистентность vs доступность

Строгая консистентность нужна там, где ошибка недопустима (банки, бронирование).

Eventual consistency подходит там, где можно жить с устаревшими данными (Instagram, аналитика).

4. Требования к задержке

Реалтайм — оптимизация под низкую задержку через кэш или предвычисления. Примеры: гейминг, Zoom, подтверждение платежей.

Асинхронно — очередь и фоновые воркеры. Примеры: e-mail рассылка, генерация отчётов.

5. Масштабируемость

Закладывай рост ×10. Пример: Google Docs начинался маленьким, но сейчас обрабатывает миллионы правок одновременно. Uber — тысячи поездок в минуту. Используй stateless-сервисы и горизонтальное масштабирование.

6. Паттерны доступа

Оптимизируй под то, какие данные и как часто читаются: поиск по гео/локации (geo-hash + ElasticSearch), быстрый доступ к часто используемым ID (Redis/Memcached).

7. Рост данных и партиционирование

Продумывай шардинг заранее (по пользователю, времени, гео). Пример: комментарии YouTube шардуются по ID видео.

Холодные данные сжимай или архивируй (Gmail, Google Drive).

8. Обработка отказов

Используй ретраи, фоллбэки, circuit breakers.

Если API падает по таймауту → повтор + настройка таймаута (пример: Amazon payment retry).

Если кэш недоступен → фоллбэк в БД (пример: Reddit загружает комментарии из БД).

9. Безопасность и авторизация

Авторизация: OAuth / JWT (пример: логин через Google или Spotify).

Защита от абузов и ботов: rate limiting, CAPTCHA (пример: Gmail signup, формы).

10. Нужно ли писать всё самому?

Некритичные фичи лучше вынести в SaaS или сторонние API:

Платежи — Stripe, PayPal.

Хранение медиа — Cloudinary, S3.

Уведомления — Firebase, SendGrid.


👉 Java Portal

BY Java Portal | Программирование


Share with your friend now:
tgoop.com/Java_Iibrary/1705

View MORE
Open in Telegram


Telegram News

Date: |

Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. Telegram Android app: Open the chats list, click the menu icon and select “New Channel.” bank east asia october 20 kowloon Write your hashtags in the language of your target audience. How to create a business channel on Telegram? (Tutorial)
from us


Telegram Java Portal | Программирование
FROM American