התייעצות על ארכיטקטורת מערכת CRM לתורמים – AI, SQLite והמשך פיתוח
-
לאחרונה סיימתי לפתח מערכת CRM לניהול תורמים עבור עמותה, וכרגע אני נמצא בשלב שלפני העלייה לשימוש בפועל. אשמח לקבל חוות דעת מאנשים בעלי ניסיון.
כמה פרטים על המערכת:
שרת VPS עם Node.js.
מסד נתונים SQLite (כרגע).
מערכת לניהול תורמים, חובות וגבייה.
ייבוא נתונים מאקסל ומסנכרון עם אלפון.
חיבור למערכת טלפונית (IVR) לביצוע צינתוקים, זיהוי תורם ותשלומים.
AI פנימי שמנתח את נתוני המערכת ונותן תשובות ותובנות (כרגע במצב קריאה בלבד).
גיבויים אוטומטיים, הרשאות משתמשים, לוגים ובדיקות אבטחה.בשלב הראשון צפויים להשתמש במערכת בערך 300–500 תורמים, אבל חשוב לי לבנות אותה כך שתוכל להמשיך לגדול בעתיד בלי שאצטרך לבצע שכתוב משמעותי.
השאלות שלי הן:
האם לדעתכם SQLite מתאים למערכת מהסוג הזה, או שכבר עכשיו כדאי לעבור ל-PostgreSQL?
האם יש חסרונות מהותיים בשילוב של AI שקורא את נתוני המערכת לצורך ניתוח ומתן המלצות?
האם יש משהו בארכיטקטורה שתיארתי שהייתם משנים כבר עכשיו, לפני שמתחילים לעבוד עם משתמשים אמיתיים?
אם הייתם מקימים מערכת דומה היום – האם הייתם בוחרים טכנולוגיות אחרות?אשמח לשמוע המלצות מניסיון, במיוחד אם נתקלתם במערכות דומות שעברו מפרויקט קטן למערכת שנמצאת בשימוש יום־יומי.
תודה רבה!
-
הייתי מוודא שהקוד תומך בהרצה של כמה תהליכונים של node.js במקביל, לצורך חלוקת עומסים על הליבות בשרת.
שלא יווצר קיפאון / Deadlock.
אין לי ניסיון בSQLite. בדרך כלל יש אפשרות לנהל pool של חיבורים, אני לא יודע איך זה עובד ספציפית במסד נתונים הזה.
אבל לSQLite יש יתרון בשיהוי / latency על פני MariaDB / MySQL / PostgreSQL, השאלה כמה הוא טוב בעבודה מקבילית. -
הייתי מוודא שהקוד תומך בהרצה של כמה תהליכונים של node.js במקביל, לצורך חלוקת עומסים על הליבות בשרת.
שלא יווצר קיפאון / Deadlock.
אין לי ניסיון בSQLite. בדרך כלל יש אפשרות לנהל pool של חיבורים, אני לא יודע איך זה עובד ספציפית במסד נתונים הזה.
אבל לSQLite יש יתרון בשיהוי / latency על פני MariaDB / MySQL / PostgreSQL, השאלה כמה הוא טוב בעבודה מקבילית.@Jabberwock כתב בהתייעצות על ארכיטקטורת מערכת CRM לתורמים – AI, SQLite והמשך פיתוח:
הייתי מוודא שהקוד תומך בהרצה של כמה תהליכונים של node.js במקביל, לצורך חלוקת עומסים על הליבות בשרת.
שלא יווצר קיפאון / Deadlock.אני לא הייתי טורח לוודא את זה.
נוד מיועדת לעבודה עם עומסים, וכל עוד לא מדובר על חישובים כבדים שדורשים כח עיבוד מיוחד, נוד זו הבחירה האופטימלית עבור קלות פיתוח ותחזוקה.
חלוקה לתתי תהליכים זה משחק במגרש של הגדולים, ואם כבר מגיעים לשלב הזה כדאי לחשוב על מעבר לפטפורמה אחרת שיותר ידידותית בטרידים כמו פייתון או GO. -
@יוסף-בן-שמעון אני חושב שהמילים העדינות שלך יש בהם סיכון לחיזוק דעתו של @Jabberwock...
אז אומר בשביל התיקון שלא רק שמה שהוא כתב לא נכון, אלא שמבחינתי זה הייתה עילה להרחקתו מהפורום.
ברור שבפורום אפשר לטעון טענות שגויות, כולנו אנשים ואני הפרחתי פה ללא ספק הרבה אמירות לא נכונות. אבל בשביל זה יש דיון, וכשיש הודעות שגויות באופן שאינו נוטל חלק בדיון זה כבר מזיק. -
באיזה שלב בפועל מתחילים להרגיש את המגבלות של SQLite במערכת כזו?
האם המדד המרכזי הוא מספר משתמשים מחוברים, כמות כתיבות במקביל, גודל הקובץ, או משהו אחר?
אני מנסה להבין איזה סימנים כדאי לעקוב אחריהם מראש, כדי לדעת מתי נכון לשקול מעבר ל־PostgreSQL.@מתקדמים כתב בהתייעצות על ארכיטקטורת מערכת CRM לתורמים – AI, SQLite והמשך פיתוח:
אני מנסה להבין איזה סימנים כדאי לעקוב אחריהם מראש, כדי לדעת מתי נכון לשקול מעבר ל־PostgreSQL.
אני לא יודע במדוייק לגבי הסימפטומים, אבל ברור שיש עדיפות למעבר למנוע אמיתי, והייתי ממליץ לך על PostgreSQL,
כיון שציינת שזה עם nodejs הייתי ממליץ לך לבדוק על Prisma ORM לניהול הSchema של מסד הנתונים והמיגרציות, זה יעזור לך מאוד,לגבי המעבר מSQLite לPostgreSQL, לדעתי כדאי שלא תמתין לבעיות, אלא פשוט תמתין לזמן שיהיה לך זמן לזה..
ואם תאמץ את ההמלצה שלי לגבי Prisma אז כלול בזה גם Prisma Client שזה בעצם מאפשר לך לעבוד מול מסד הנתונים במקום עם שאילתות SQL גולמיות, אלא עם קוד נקי ובטוח יותר, שמתאים לשני מנועי מסדי הנתונים (יש עוד הרבה יתרונות לPrisma) -
@מתקדמים כתב בהתייעצות על ארכיטקטורת מערכת CRM לתורמים – AI, SQLite והמשך פיתוח:
אני מנסה להבין איזה סימנים כדאי לעקוב אחריהם מראש, כדי לדעת מתי נכון לשקול מעבר ל־PostgreSQL.
אני לא יודע במדוייק לגבי הסימפטומים, אבל ברור שיש עדיפות למעבר למנוע אמיתי, והייתי ממליץ לך על PostgreSQL,
כיון שציינת שזה עם nodejs הייתי ממליץ לך לבדוק על Prisma ORM לניהול הSchema של מסד הנתונים והמיגרציות, זה יעזור לך מאוד,לגבי המעבר מSQLite לPostgreSQL, לדעתי כדאי שלא תמתין לבעיות, אלא פשוט תמתין לזמן שיהיה לך זמן לזה..
ואם תאמץ את ההמלצה שלי לגבי Prisma אז כלול בזה גם Prisma Client שזה בעצם מאפשר לך לעבוד מול מסד הנתונים במקום עם שאילתות SQL גולמיות, אלא עם קוד נקי ובטוח יותר, שמתאים לשני מנועי מסדי הנתונים (יש עוד הרבה יתרונות לPrisma)@אביי כרגע אני משתדל להשאיר את שכבת הגישה למסד כמה שיותר מבודדת מהלוגיקה העסקית, כדי שמעבר עתידי למסד אחר יהיה פשוט יחסית.
לגבי Prisma, מסקרן אותי אם לדעתך הוא מצדיק את התוספת גם בפרויקט קטן־בינוני, או שהיית שוקל להכניס אותו רק כשכבר יודעים בוודאות שמתכננים מעבר ל־PostgreSQL?
-
@אביי כרגע אני משתדל להשאיר את שכבת הגישה למסד כמה שיותר מבודדת מהלוגיקה העסקית, כדי שמעבר עתידי למסד אחר יהיה פשוט יחסית.
לגבי Prisma, מסקרן אותי אם לדעתך הוא מצדיק את התוספת גם בפרויקט קטן־בינוני, או שהיית שוקל להכניס אותו רק כשכבר יודעים בוודאות שמתכננים מעבר ל־PostgreSQL?