@צבי-ש כתב בהפעלת תהליך נוד מחדש לקובץ ספציפי - הגיוני?:
נכון, כי זה נשמר לקואלית, לא מורכב לשייך את כל הנתונים שיישמרו בredis או מסד חיצוני מהיר אחר, ולא יורגש כמעט ההבדל במהירות במהלך השיחה, וזה כן יישמור נתונים אחרי ריסטארט
בכללי הטריק של הספריה הוא שאתה כותב קוד שרץ רק פעם אחת ואז התשובה של הread שמורה בזיכרון ולא שכל פעם הקוד רץ מחדש ואתה צריך לבדוק אם הפרמטר כבר קיים
ממילא ברגע שאתה מפעיל מחדש את התהליך הפונקציה כבר לא קיימת ואין דרך לא לאפס את הריצה, וגם אם היה לך דרך לשמר את הפונקציה רצה אז זה היה גרסה ישנה שלה ולא היה עוזר לך לפיתוח
היתרון של זה הוא שהכתיבה והדיבוג מאוד פשוטים, הקוד רץ מלמעלה ללמטה ברצף
אם אתה עושה שהקוד כן ירוץ מחדש רק יקח את הנתונים מהזיכרון, אז פעולות שהן לא idempotent כמו נניח שליחת מייל יהיה צריך לעטוף ככה בערך
const name = await call.read([{ type: ‘text’, data: ‘מה שמך?’ }])
await call.once(async () => {
await db.insert({ name })
await sendEmail(name)
console.log(‘נשמר!’)
})
const age = await call.read([{ type: ‘text’, data: ‘מה גילך?’ }])
@ששא בכל מקרה מה שהצעת לא יעזור לך לעניין של איפוס הסטייט בפיתוח
ולפרודקשן עדיף לדעתי שיטות יותר פשוטות של החלפת התהליך כולו