విసుగు పుట్టించే నిర్ణయాలే నా ఉత్తమ నిర్ణయాలు ఎందుకు అయ్యాయి

మంచి డెవలపర్ అంటే సంక్లిష్టమైన కోడ్ రాయడమే అని నేను ఒకప్పుడు అనుకునేవాడిని.

నేను పొరబడ్డాను.

భవిష్యత్తులో మల్టీ-టెనెంట్ SaaS గా మారబోయే ఒక మెడికల్ క్లినిక్ కోసం MVPని డిజైన్ చేస్తున్నప్పుడు, నేను ఒక కఠినమైన పాఠాన్ని నేర్చుకున్నాను. కోడ్ రాయడం సులభమైన భాగం. దేనిని నిర్మించకూడదో నిర్ణయించుకోవడమే కష్టమైన భాగం.

microservices, events మరియు Kubernetes ఉపయోగించాలనే కోరిక కలిగింది. ఇవి CVలో చూడటానికి చాలా బాగుంటాయి. కానీ microservicesలకు ఖర్చు ఎక్కువ. సంక్లిష్టమైన పైప్‌లైన్‌లు, వెర్షనింగ్ సమస్యలు మరియు కష్టతరమైన డీబగ్గింగ్‌తో మీరు వాటికి మూల్యం చెల్లించుకోవాల్సి ఉంటుంది.

ముగ్గురు వ్యక్తుల బృందం మరియు తక్కువ మంది వినియోగదారులు ఉన్నప్పుడు, microservices కేవలం అదనపు పని మాత్రమే. మీకు ఇంకా లేని సమస్యలను మీరు పరిష్కరించాల్సి వస్తుంది.

దానికి బదులుగా, నేను .NET 8 మరియు PostgreSQLతో కూడిన సరళమైన layered architectureను ఎంచుకున్నాను. దీనికి నెలకు సుమారు $30 ఖర్చవుతుంది.

నేను తెలివైన, తక్కువ ఖర్చుతో కూడిన నిర్ణయాలపై దృష్టి పెట్టాను, ఎందుకంటే వాటిని తర్వాత మార్చడం ఖరీదైనది:

• మొదటి రోజు నుండే ప్రతి టేబుల్‌కు TenantId కాలమ్‌ను జోడించాను. • మొదటి కమిట్ నుండే Dockerను ఉపయోగించాను. • WhatsApp ప్రొవైడర్ కోసం ఒక ఇంటర్‌ఫేస్‌ను సృష్టించాను.

వీటన్నింటికీ ఒక్కో మధ్యాహ్నం సమయం పట్టింది. ఇవి భవిష్యత్తులో జరిగే మైగ్రేషన్లను కేవలం సింపుల్ కాన్ఫిగరేషన్ మార్పులుగా మార్చేశాయి.

వ్యాపార అవసరాలకు అనుగుణంగా ప్యాటర్న్స్‌ను ఎలా సర్దుబాటు చేయాలో కూడా నేను నేర్చుకున్నాను.

ఉదాహరణకు, WhatsApp నోటిఫికేషన్ల కోసం నేను Outbox patternను ఉపయోగించాను. అపాయింట్‌మెంట్ బుక్ చేయడం వేగంగా మరియు నమ్మదగినదిగా ఉండాలి. మెసేజ్ పంపడం అనేది రెండు సెకన్ల తర్వాత జరగవచ్చు. ఒకవేళ WhatsApp నెమ్మదిగా ఉన్నా, అపాయింట్‌మెంట్ ప్రక్రియ మాత్రం సజావుగా సాగుతుంది.

అయితే, మెడికల్ రికార్డుల కోసం నేను "eventual consistency"ను తిరస్కరించాను. మెడికల్ డయాగ్నోసిస్ ఖచ్చితంగా మరియు తక్షణమే ఉండాలి. హెల్త్‌కేర్ రంగంలో, చట్టపరమైన అవసరాలే వాస్తవానికి ఆర్కిటెక్చరల్ అవసరాలు.

నేను వాస్తవ గణాంకాలను కూడా పరిశీలించాను.

Kubernetes సెటప్ (EKS) నెలకు $545 నుండి $615 వరకు ఖర్చవుతుంది. AWS Fargate సెటప్ నెలకు $350 నుండి $420 వరకు ఖర్చవుతుంది.

అంటే ప్రతి నెలా $150 కంటే ఎక్కువ ఆదా అవుతుంది. మా ప్రస్తుత పరిమాణానికి Fargate సరళంగా మరియు చౌకగా ఉంటుంది కాబట్టి నేను దానిని ఎంచుకున్నాను.

నా వ్యూహం సరళమైనది:

  1. మొదట layers ఉపయోగించండి.
  2. బాహ్య డిపెండెన్సీలు (WhatsApp వంటివి) మీ సిస్టమ్‌పై ప్రభావం చూపడం ప్రారంభించినప్పుడు events ఉపయోగించండి.
  3. వాల్యూమ్ మరియు టీమ్ సైజు అవసరమైనప్పుడు మాత్రమే microservicesకి మారండి.

మీకు ఇంకా లేని ఇరవై మంది క్లయింట్ల కోసం డిజైన్ చేయకండి. మీకు ఈరోజు డబ్బు చెల్లిస్తున్న క్లయింట్ కోసం మాత్రమే నిర్మించండి.

Source: https://dev.to/jose_confalonieri_3891172/lo-que-aprendi-disenando-un-saas-para-clinicas-por-que-la-decision-mas-importante-fue-la-mas-4iom