Multi-platform թվային արտադրանքի back-end և տվյալների ճարտարապետություն

Cloud-hosted back-end-ի, relational data model-ի, content architecture-ի և տարբեր product client-ներին սպասարկող API-ների լայն պատասխանատվություն։

Back-end · Տվյալների ճարտարապետությունBack-end, database և API պատասխանատվությունԱնանուն թվային արտադրանք

Համատեքստ

Արտադրանքը պահանջում էր միասնական back-end՝ user/profile տվյալների, փաստաթղթերի, geographic reference data-ի, polling concept-ների, multilingual էջերի, navigation-ի և structured content-ի լայն փոխկապակցված domain-ի համար։

Ինչ պետք էր լուծել

Back-end-ը պետք է պահպաներ relational integrity-ն՝ միաժամանակ զարգացնելով մեծ domain model և տարբեր client-ների ու presentation context-ների համար համապատասխան content տրամադրելով։

Համակարգային սահմաններ

  • Production schema փոփոխությունները պետք է լինեին non-destructive և հաշվի առնեին գոյություն ունեցող տվյալները։
  • Multilingual content-ը ներառում էր localized էջեր, navigation, hierarchical menu-ներ և տարբեր navigation context-ներ։

Back-end, database և API պատասխանատվություն

  • Պատասխանատու եմ եղել Node.js/TypeScript back-end-ի, Prisma/MySQL relational շերտի, API-ների և content/data architecture-ի համար։
  • Նախագծել եմ user, profile, address, education, experience, document, polling, geography, navigation և content domain-ների հարաբերություններն ու constraints-ը։
  • Կառավարել եմ schema evolution-ը, migration debugging-ը, production data-ի նկատառումները և տարբեր client-ներին content delivery-ն։

Համակարգային մոդել

Արտադրանքի տվյալների հոսքՏարբեր product client-ներ օգտագործում են մեկ structured API և relational content/domain model։
Product client-ներ
WebMobileContent surface-ներ
Back-end API-ներ · Content transformation
Domain ծառայություններ · Validation
Prisma · MySQL relational model
Cloud-hosted ենթակառուցվածք

Որտեղ էր բարդությունը

  • Մեծ փոխկապակցված schema-ի զարգացում՝ foreign key-երի, index-ների, unique constraint-ների և migration sequencing-ի միջոցով։
  • Պահպանված HTML/content-ի փոխակերպում ordered, structured ներկայացումների՝ mobile consumption-ի համար, որտեղ անհրաժեշտ էր։
  • Schema drift-ի և migration state-ի ախտորոշում՝ պահպանելով production data-ն և backup/restore ուղիները։

Լուծման կառուցվածքը

  • Relational model-ը պահվել է հստակ, իսկ domain rule-երը կիրառվել են constraint-ների և service-level validation-ի միջոցով։
  • Պահպանված content-ը առանձնացվել է client-specific ներկայացումներից՝ պահպանելով հերթականությունն ու semantic structure-ը։
  • Migration-ները, existing data-ն և restore նկատառումները դիտարկվել են feature delivery-ի մաս, ոչ թե հետագա խնդիր։

Ինչ ձևավորվեց

  • Կառուցվածքային back-end և data foundation՝ տարբեր client-ներին սպասարկելու համար՝ առանց հիմքում ընկած domain model-ը կրկնօրինակելու։

Տեխնոլոգիաներ և համակարգեր

Node.jsTypeScriptPrismaMySQLAWS

Արտադրանքի անունը, hostname-ները, infrastructure address-ները, credentials-ը, secret-ները և private schema անունները չեն հրապարակվում։