GraphQL یک زبان پرسوجوی بسیار قدرتمند است که دادهها را به روشهای منحصربهفرد و کارآمد به هم متصل میکند. یکی از جالبترین کاربردهای GraphQL در صنعت بانکداری است، جایی که ارزش و بینش قابل توجهی از منابع داده و موارد استفاده مختلف ارائه میدهد. در ادامه، به بررسی GraphQL و برخی از کاربردهای آن در بانکداری میپردازیم. بیایید شروع کنیم!
GraphQL چیست؟
قبل از بحث درباره نمونههای خاص استفاده از GraphQL در بانکداری، باید کمی یادآوری کنیم که GraphQL چیست. GraphQL یک زبان پرسوجو برای APIها است که به مشتریان امکان میدهد دقیقاً دادههای مورد نیاز خود را درخواست کنند و نحوه دریافت آنها را مشخص نمایند. GraphQL ابتدا در سال ۲۰۱۲ توسط فیسبوک توسعه یافت و در سال ۲۰۱۵ به صورت متنباز منتشر شد. از آن زمان، چندین نسخه و توسعه از آن ایجاد شده که تکنولوژی اصلی را گسترش دادهاند.
GraphQL دارای مزایای زیادی است، از جمله:
-
پرسوجوهای بسیار انعطافپذیر: درخواستهای GraphQL بر اساس نیاز دقیق داده مشتری تنظیم میشوند. برخلاف APIهای سنتی که دادهها به شکل ثابت ارائه میشوند، GraphQL کنترل بیشتری به کاربر میدهد و از دریافت بیش از حد یا کمتر از حد داده جلوگیری میکند.
-
نقطه انتهایی واحد: از آنجا که GraphQL اجازه میدهد دادهها توسط کاربر شکل داده شده و ارائه شوند، یک نقطه انتهایی میتواند تمام دادهها را در یک ساختار مشخص ارائه دهد. این موضوع استفاده در مقیاس بالا را سادهتر و جریانهای کاری را کارآمدتر میکند.
-
تایپ قوی: GraphQL دارای تایپ قوی و اسکیمای مشخص است که کنترل میکند چه دادههایی میتوانند پرسوجو شوند و چگونه. این باعث ایجاد قراردادی محکم بین مشتری و سرور میشود و امنیت، تجربه کاربری و جریانهای داده در مقیاس را بهبود میبخشد.
-
Introspection یا بررسی اسکیمای خود: GraphQL به مشتریان امکان میدهد خود اسکیمای API را نیز پرسوجو کنند، که این باعث درک بهتر از سرویس و نحوه ساخت بر اساس آن میشود.
۴ نمونه استفاده از GraphQL در بانکداری
با این مرور کوتاه، حالا به برخی از نمونههای کاربرد GraphQL در بانکداری مدرن میپردازیم.
۱. بانک ملی استرالیا (National Australia Bank – NAB)
بانک ملی استرالیا (NAB) یکی از بزرگترین بانکهای استرالیا است و هزاران شعبه در استرالیا، نیوزیلند و آسیا دارد و به ۹ میلیون مشتری جهانی خدمات ارائه میدهد.
به عنوان یک موسسه مالی بزرگ و با سابقه، NAB با همان مشکلی مواجه بود که بسیاری از بانکها دارند: پیچیدگی فنی با گذر زمان افزایش یافته و کدهای یکپارچه (monolithic codebase) در برابر نوآوری نامنسجم شده بود. NAB چهار مشکل کلی را شناسایی کرد که باید برای تثبیت سهم بازار حل میشد:
-
مشکل تکرار: تلاشهای توسعه دوباره انجام میشد و هنگام ارائه ویژگیهای جدید هزینه و سردرگمی اضافی ایجاد میکرد. هر ویژگی جدید باید برای پلتفرمها و کانالهای مختلف ساخته میشد.
-
گلوگاهها: ارائه چند محصول به دلیل گلوگاههای توسعه دشوار بود و توزیع مؤثر تقریباً غیرممکن میشد.
-
تجربه ناسازگار: طراحی چند محصول برای شرایط مختلف باعث ایجاد تجربه نامناسب برای کاربران و توسعهدهندگان میشد.
-
ریسک بالای استقرار فرانتاند: ارائه فرمها و عملکردهای مختلف بر روی یک کد یکپارچه باعث ایجاد ریسک و دشواری در پیادهسازی میشد.
برای حل این مشکلات، NAB استراتژی جدیدی اتخاذ کرد: پلتفرمی به نام NAB-X که تعامل با سرویسها را از طریق معماری میکروسرویس برای فرانتاند ساده میکرد. برای پیادهسازی مؤثر این تجربه فرانتاند و ارائه به برنامهها و رابطها در شرایط مختلف، NAB از GraphQL به عنوان هسته اصلی استفاده کرد و انعطاف بالایی فراهم شد.
نتیجه، سیستمی بسیار مؤثر بود که امکان ارتباط پایدار با بکاندهای پیچیده و شبکهای از رابطها را فراهم میکرد. NAB اشاره میکند که GraphQL دارای منحنی یادگیری کم است و باعث افزایش بهرهوری و عملکرد برنامهها شده است.
«استفاده از GraphQL همچنین مکانیسمی یکنواخت و با تایپ قوی برای تعامل کد فرانتاند با بکاند ایجاد میکند که از پیادهسازیهای ضعیف و پراکنده جلوگیری میکند. این با هدف ما برای ارائه سریع و امن ویژگیها به مشتریان همراستا است. به طور گستردهتر، فرصتهایی برای طراحی یک سرویس GraphQL فدرال آینده وجود دارد.»
۲. Varo
Varo یک بانک مدرن است که از ابتدا با هدف ایجاد تغییر در بانکداری سنتی با استفاده از فناوریهای مدرن تأسیس شد. به همین دلیل، از ابتدا تمرکز زیادی روی ارائه خدمات به کاربران مختلف در پلتفرمها و دستگاههای مختلف وجود داشت. تا سال ۲۰۲۱، Varo میزبان ۴ میلیون حساب و پردازش صدها میلیون درخواست سرویس در ماه بود.
برای مدیریت این حجم عظیم داده، Varo نیاز داشت یک معماری میکروسرویس متصل ایجاد کند. Varo از Apollo و GraphQL برای پاسخگویی به نیازهای با حجم بالا استفاده کرد. Sundar Siva، مدیر ارشد مهندسی، توضیح میدهد:
«قبل از راهاندازی Varo Bank، ما Varo Money داشتیم، یک اپلیکیشن پرداخت که از درگاه API استاندارد و معماری یکپارچه استفاده میکرد. اما با توجه به تعداد میکروسرویسهایی که باید برای Varo Bank ساخته میشد، استفاده از یک کد یکپارچه سالها عقب میانداخت. وقت نداشتیم. با Varo Bank، فرصت داشتیم یک تکنولوژی جدید از صفر بسازیم. میدانستیم که باید از GraphQL و Apollo Federation استفاده کنیم. هیچ راهحل قابل اعتمادی برای معماریهای ترکیبی در مقیاس وجود ندارد.»
Varo مفهوم supergraph را اتخاذ کرد تا GraphQL به هسته فناوری تبدیل شود. در اصل، supergraph نمای یکپارچهای از شرکت و دادهها، خدمات، فریمورکها و تبادلات ارائه میدهد و سیستم را مدولار و قابل گسترش میکند. این رویکرد به Varo امکان میدهد تا به سرعت مقیاس شود و بیش از ۵۰۰ میلیون درخواست ماهانه را مدیریت کند.
۳. گلدمن ساکس و Legend GraphQL
یکی از جنبههای جالب بانکداری مدرن، ترکیب ساختارهای کلاسیک با نیاز به نوآوری سریع است. گلدمن ساکس با ارائه پلتفرم Legend به بنیاد متنباز FINOS، دادهها را به شیوهای فدرال و قابل اتصال ارائه میکند. با پیادهسازی resolverهای GraphQL، دادهها از منابع مختلف جمعآوری شده و در نمونهها، موارد استفاده و رابطهای مختلف ارائه میشوند. این روش قراردادی فدرال ایجاد میکند و تصمیمگیری مؤثر در بانکداری را سادهتر میکند.
۴. Banco Bilbao Vizcaya Argentaria (BBVA)، Deeptracy و GraphQL
یکی دیگر از مثالهای GraphQL، بازنویسی Deeptracy توسط BBVA است. BBVA یک سازمان خدمات مالی است و بخش فناوری آن، BBVA Innovation Labs، سالهاست در حال پیشبرد فناوری در صنعت است.
یکی از ابزارهای آنها، Deeptracy، به شناسایی مسائل امنیتی کتابخانههای شخص ثالث کمک میکند. این یک مولفه حیاتی در هر استک فناوری، به ویژه در فینتک است. مالک پروژه، Roberto Martinez، برای بازنویسی کد و انعطافپذیری بیشتر، از دو راهحل استفاده کرد:
-
Hasura به عنوان پلتفرم مدیریت API، برای ایجاد حاکمیت و مدیریت قوی.
-
GraphQL برای اتصال سیستمها و عملکردها به شیوهای قابل توسعه و انعطافپذیر.
با این رویکرد، تنها کد زیرساخت توسعه یافت و موارد استفاده توسط فراخوانها و تعاملات تعریفشده توسط کاربران ارائه شد. طبق یک مطالعه موردی Hasura، زمان توسعه Roberto از دو ماه به سه هفته کاهش یافت.
«با API GraphQL، بار نگهداری او بسیار کمتر شد: توسعه و تکرار آسانتر خواهد بود، زیرا نیازی به نوشتن APIهای جدید برای دریافت دادههای خاص نیست. وقتی BBVA سایر نرمافزارهای خود را با DeepTracy ادغام کند، نیاز به مستندسازی و ارتباطات به طور قابل توجهی کاهش مییابد.»
جمعبندی نهایی
GraphQL برخی از جالبترین کاربردها در فضای API را قدرت میبخشد و بخش بزرگی از این موارد در صنعت بانکداری و فینتک است. سازمانها متوجه شدهاند که GraphQL کنترل بیشتری روی منابع داده فراهم میکند و انعطاف لازم برای ارائه و تبدیل دادهها را ایجاد میکند.
البته، GraphQL تنها راهحل موجود نیست و بانکداری باز از راهحلهای متنوعی از جمله پیادهسازیهای RESTful استاندارد نیز استفاده میکند. با این حال، GraphQL در مواردی که به بهرهوری و الگوهای متغیر نیاز است، بسیار مفید واقع شده است.
