نقشه راه
Software Architect
تصمیمهای بزرگ: سبک معماری، مقیاسپذیری، کیفیت و هزینه.
لازم بدون این، استخدام نمیشوی.خوب است امتیاز اضافه.تخصصی فقط برای شغلهای خاص.
۱
شکل کلی سیستم
سیستم را چطور تقسیم کنیم و چرا.
لازمسبکهای معماریMonolith، Modular Monolith، Microservices، Event-DrivenآمادهلازمDomain-Driven Designزبان مشترک، Bounded Context، AggregateآمادهلازمClean Architectureلایههای پیاز و جهت وابستگیهاآمادهلازمMicroservicesمرز سرویسها، داده هر سرویس، هزینههاآمادهخوب استVertical Sliceسازمان دادن کد بر اساس قابلیتآمادهلازمArchitecture Decision Recordثبت تصمیمهای معماری و دلیل آنهاآماده
۲
داده و همزمانی
داده در چند سرویس، و هزینه هر انتخاب.
لازمConsistency و CAPEventual Consistency و انتخابهای سختآمادهلازمالگوی Sagaتراکنش در چند سرویس با کار جبرانیآمادهلازمOutbox و Inboxارسال مطمئن پیام همراه با تغییر دیتابیسآمادهلازمIdempotencyیک درخواست، هر چند بار، یک نتیجهآمادهخوب استEvent Sourcingذخیره رویدادها به جای وضعیت نهاییآمادهلازمالگوهای CachingCache-Aside، باطل کردن کش، Stampedeآماده
۳
مقیاس و قابلیت اطمینان
سیستمی که بزرگ شود و با خطا نیفتد.
لازمطراحی سیستمScale افقی، Load Balancing، Sharding، ReplicaآمادهلازمResilience با PollyRetry، Circuit Breaker، Timeout و طوفان Retryآمادهخوب استKafkaTopic، Partition، Consumer Group و ترتیب پیامآمادهلازمDistributed TracingOpenTelemetry، Trace و Span در چند سرویسآمادهخوب استKubernetesPod، Deployment، HPA و خاموش شدن امنآمادهلازمامنیتOWASP Top 10، مدیریت Secret، رمزنگاریآماده
۴
کار با تیمها
معماری فقط نمودار نیست؛ تصمیم و ارتباط هم هست.