უკან დაბრუნება
Fintech Engineering Handbook: ნიმუშები ფულთან მომუშავე პროგრამებისთვის
SiTech AI Team2 წთ. საკითხავი

Fintech Engineering Handbook: ნიმუშები ფულთან მომუშავე პროგრამებისთვის

ვოიტეკ პიტულამ გამოაქვეყნა უფასო სახელმძღვანელო იმ საინჟინრო ნიმუშებზე, რომლებზეც ფულის სისტემებია აგებული — თანხების წარმოდგენიდან ორმხრივ ბუღალტერიამდე, იდემპოტენტურობამდე, ვებჰუკებამდე და რეკონსილიაციამდე.

სამი პრინციპი ფულის სისტემებისთვის

ვოიტეკ პიტულამ, ინჟინერმა, რომლის გამოცდილებაც გადახდებს, ბუღალტერიასა და ხაზინის მართვას მოიცავს ფიატურ და კრიპტო სფეროში, გამოაქვეყნა Fintech Engineering Handbook — უფასო სახელმძღვანელო იმ ნიმუშებზე, რომლებსაც იყენებენ, როცა სისტემის მთავარი საგანი ფულია. მასში სამი პრინციპი გადის ყველაფერზე. არავითარი გამოგონილი მონაცემი: იდემპოტენტურობა, დედუპლიკაცია და რეკონსილიაცია, რომ ფული არასოდეს შეიქმნას ან გაორმაგდეს. არავითარი დაკარგული მონაცემი: სრული სიზუსტე, „მინიმუმ ერთხელ“ მიწოდება, მოვლენებზე დაფუძნებული არქიტექტურა, აუდიტის კვალი და უცვლელობა. და არავითარი ნდობა — არც გარე მომწოდებლების, არც შიდა კომპონენტების და არც სამყაროს მიმართ — ამიტომ ვებჰუკები მოწმდება, მონაცემები დამოუკიდებელ წყაროებთან შედარებით მოწმდება, ხოლო დარღვეული ვარაუდები ხმამაღლა ვლინდება.

ფულის წარმოდგენა და აღრიცხვა

სანამ ფული იმოძრავებს, ის უნდა იყოს წარმოდგენილი. პიტულა ადარებს ოთხ მიდგომას: მცურავი წერტილის რიცხვები, რასაც ის თითქმის არასოდეს კარგ იდეად მიიჩნევს; თვითნებური სიზუსტე, მაგალითად Java-ს BigDecimal, ჯაჭვური გამოთვლებისთვის; მინორულ ერთეულებში შენახული მთელი რიცხვები, რომელთა ციფრებს ISO 4217 განსაზღვრავს და ყოველთვის ორი არ არის; და რაციონალური რიცხვები, როცა სიზუსტის დაკარგვა დაუშვებელია. დამრგვალება გარდაუვალია, მაგრამ უნდა იყოს გამოკვეთილი, ბიზნესის მიერ გადაწყვეტილი და აღრიცხული, როცა ის ჯამებს არღვევს.

ფულის აღრიცხვა ნიშნავს ლეჯერს: ორმხრივი ბუღალტერია, განსხვავება ღირებულების, დაჯავშნისა და ანგარიშსწორების დროს შორის, აუდიტის კვალი, მოვლენებზე დაფუძნებული მიდგომა და უცვლელობა, პლუს შესწორებები და გაუქმებები ჩანაწერების რედაქტირების ნაცვლად — და დაძაბულობა უცვლელობასა და მონაცემთა წაშლის მოთხოვნებს შორის.

ნაკადები, გარე სამყარო და კონტროლი

ფულის ნაკადის შესრულება ეყრდნობა ინვარიანტებს, თანხების დაჯავშნას (hold-and-release, სრული და ხელმისაწვდომი ნაშთის განსხვავებით), ოვერდრაფტის გამოკვეთილ დამუშავებას — რომლის არსებობაც ვერ აღიკვეთება, რადგან გარე სამყარო ნებართვას არ ითხოვს — იდემპოტენტურობას განმეორებითი მოთხოვნების დროს და სრულ განახლებადობას: ნაკადები შენახული მდგომარეობის მანქანებია, მათ დამოუკიდებელი დრაივერი აგრძელებს, და ყოველი ნაბიჯი უნდა იყოს უსაფრთხო ხელახლა შესასრულებლად. ინტეგრაციებზე ის გვირჩევს, ვივარაუდოთ, რომ API-ები ცუდად მოიქცევიან, შევინახოთ ყოველი მოთხოვნა და პასუხი, ვაკონტროლოთ კვოტები და ვებჰუკები მინიშნებად მივიჩნიოთ და არა სიმართლედ: ხელმოწერა შევამოწმოთ ნედლ ბაიტებზე, დავტოვოთ პეილოუდი, სწრაფად დავადასტუროთ, შემდეგ კი API-ს ვკითხოთ ავტორიტეტული მდგომარეობა. სანდო გამოქვეყნება outbox-ის ნიმუშით ან CDC-ით ხდება, რეკონსილიაცია კი გამორჩენილს იჭერს. ბოლო ნაწილი ეხება მოვალეობების განცალკევებას და „ოთხი თვალის“ დადასტურებას, მინიმალური უფლებების პრინციპს პერიოდული გადამოწმებით და კოდიდან წარმოებამდე აუდიტირებად კვალს.

დანართები და გულახდილი შეზღუდვები

დანართები სამ სრულ ნაკადს გადის — 0,5 ETH-ის კრიპტო გატანა, ბარათით დეპოზიტი გადახდის სერვისის მეშვეობით და აპლიკაციაში 1 000 ევროს USDC-ად კონვერტაცია ქეშბექით — და ბუღალტერიის, გადახდების, ბაზრების, კრიპტოს, KYC-სა და AML-ის ლიტერატურის სიას. პიტულა აღნიშნავს, რომ ტექსტის უმეტესი ნაწილი საკუთარი ხელით დაწერა, ხელოვნური ინტელექტი კი რედაქტირებისა და კვლევისთვის გამოიყენა; წიგნი ცოცხალი დოკუმენტია, უკუკავშირი GitHub-ზე მიიღება, და ის არ არის იურიდიული, კომპლაიანსური ან ფინანსური რჩევა.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.