سیستم توزیع‌شده مجموعه‌ای از پردازش‌ها یا ماشین‌هاست که از طریق شبکه با هم همکاری می‌کنند تا یک خدمت یا هدف مشترک را فراهم کنند.

یک سناریوی واقعی

یک فروشگاه می‌تواند Front End، سرویس سفارش، سرویس پرداخت و دیتابیس را روی گره‌های مختلف اجرا کند. خرابی شبکه و اختلاف زمان مشاهده داده در این محیط عادی هستند.

طراحی سیستم توزیع‌شده فقط تقسیم کد نیست. Timeout، Retry، Idempotency، سازگاری داده و مشاهده‌پذیری اهمیت ویژه دارند.

برای تکمیل بحث، ارتباط این مفهوم را با میکروسرویس و معماری مونولیتیک بررسی کنید.

این راهکار را به‌صورت پیش‌فرض به تمام پروژه‌ها تحمیل نکنید. هزینه پیاده‌سازی، خطاهای محتمل و سازگاری با زیرساخت فعلی را بسنجید.

برای تکمیل این بحث، صفحه سیستم دیزاین را نیز ببینید.