当前位置:网站首页>Banknext microservice: a case study
Banknext microservice: a case study
2022-06-23 03:34:00 【Micro Stone】
This article is about “BankNext” A case study of : It includes digital transformation 、 Customer induction process and event driven and hidden mines .
Business objectives
“ BankNext ” Is in an ambitious phase of digital transformation , And hope to make it Seamless connection of customer induction process . After detailed functional process analysis ,BankNext Implements an orchestration Architecture , You can collaborate between various microservices .

The business process
- start-up : Prospects in BankNext Start the join process on
- Pre inspection :BankNext First call Screening MSvc and Data deduplication Msvc To study potential customers and ensure that the entity does not exist in the system
- Handle ( After passing the pre inspection ):CustomerMgt Msvc Create a customer entity ,AccountMgt Msvc Create... For this customer Account Entity .
- Compliance : In the initial stage monitor Msvc To check for suspicious activity and recommend Msvc To provide customer satisfaction based on customer preferences .
Build feedback
BankNext Very satisfied with this architecture , Here's why :
- Entity Orchestrator Msvc It provides the system with the ability to collaborate among multiple microservices .
- The coordinator can sort and synchronize the calls .
- The choreographer based on the response from the invoked microservice / Adjust the operation abnormally .
- Coordinators benefit from asynchronous parallel calls by cleverly using the future that can be accomplished , As long as the calls are not interdependent .
Build negative feedback
BankNext Soon realized : We have a question :
- Unexpected... Occurs when invoking and collating responses from multiple microservices Delay .
- Suppose that each Msvc need 300ms, So all 7 The total time required is at least 1 second ( namely 300ms * 7).
- This kind of waiting makes potential customers unhappy .
- Any new Msvc The introduction of will force Orchestrator Write the call explicitly , This can lead to undesirable Tightly coupled .
Back to planning
After in-depth analysis , The engineering and business teams jointly determined that the root cause of the delay was the longest running service .
Business Review
The business review concluded , Filtering and deduplication pre checks are mandatory . Once through , The user can clearly get an account , Therefore, a confirmation message can be sent . Monitoring and recommendation are ancillary services , The user's confirmation shall not be delayed .
Technical challenges
To achieve this business vision , System design must evolve to break the process , In order to send the user confirmation immediately after the pre check . The rest of the process , Customer creation and account creation 、 Monitoring and recommendation should asynchronous happen . This will greatly improve the user experience .


Technology implementation
- The engineering team immediately realized Event driven orchestration Will be the right way to solve this challenge .
- After successful pre check ,EntityMgt Msvc* This new entity txn Publish to Kafka “ *new_entity_initiated_topic ”.
- EntityMgt Msvc Send initial confirmation information back to the user .
- CustomerMgt Msvc subscribe Kafka “new_entity_initiated_topic” And use this event .
- CustomerMgt Msvc Create a customer in the system and publish this event to Kafka “ new_customer_created_topic ”.
- AccountMgt Msvc subscribe Kafka “ new_customer_created_topic ” And use this event .
- AccountMgt Msvc Create an account for the customer in the system and publish this event to Kafka “ new_account_created_topic ”
- The new entity is successfully created in the system .
- Support services , I.e. monitoring Msvc And recommendations Msvc subscribe Kafka “ new_account_created_topic ”.
10. Because this process is asynchronous , Therefore, a new Notification Msvc Notify customers of account details .
11. This Notification Msvc You can simply subscribe Kafka “ new_account_created_topic ” Quickly connect to this new architecture .
The advantages of the new architecture
- Significantly improved responsiveness to customers .
- Eliminate tight coupling , Because explicit service calls are no longer required . The system only needs to know which topics to publish or subscribe to .
- By subscribing to the right topic , Can quickly integrate new services , To gain great future flexibility .
New building negative factors : Hidden mines
- As flexibility increases , This architecture brings higher system complexity .
- By introducing robust messaging components , Major infrastructure enhancements to enable event driven processing .
- Observability 、 The ability of system debugging and tracking needs to be significantly improved , To troubleshoot the fault scenario .
- State management 、 Retry and system wide rollback mechanisms add complexity .
- The atomicity of the system needs to be detailed SAGA Realization
Abstract : framework 、TechStack And basic principles
| Architecture goals | strategic | Technology stack | The basic principle |
| Flexible and scalable integration | Topics | Topics | Eliminate centralized coordinator dependencies |
| Event driven capability | The messaging system | Kafka | eliminate svcs Close coupling between |
| Future capability efficiency | Publish/Subscribe | Kafka | Eliminate explicit new svc Call call |
| System wide observability | Centralized logging/tracing | ELK/Sleuth | Asynchronous logging and observability |
| Heavy volume/TPS | Streaming | Kafka/Async operations | Very low latency |
| Parallel aggregation | A future that can be accomplished | java | General purpose |
| frame | Microservices | Springboot | General purpose |
边栏推荐
- Goframe framework (RK boot): realize distributed log tracing
- Analysis of China's integrated circuit industry chain in 2021: huge downstream market demand [figure]
- How to solve the problem that easynvr cannot be cascaded to the easynvs platform? View ports first
- Stress testing with locust on rainbow
- Tencent released the global DDoS threat report in 2021: DDoS threat has become the preferred extortion method for criminal gangs
- What is the reason why anonymous live OBS streaming is successful but flv video cannot be played?
- What are the advantages of the completely free and open source flutter? How to learn about flutter?
- Get method of fetch request and data of formdata type submitted by post
- Salesforce heroku (V) application in salesforce (canvasapp)
- Flink practice tutorial: advanced 7- basic operation and maintenance
猜你喜欢
![Analysis on the development status of China's watch industry in 2021: a large number of electric watches are imported [figure]](/img/ca/672bfe49c8123da8679b2abeb43a2e.jpg)
Analysis on the development status of China's watch industry in 2021: a large number of electric watches are imported [figure]
![Analysis on the development prospect of China's brain computer interface industry in 2021: wide application prospect, sustained and rapid growth of market scale [figure]](/img/84/192d152ceb760264b6b555b321f129.jpg)
Analysis on the development prospect of China's brain computer interface industry in 2021: wide application prospect, sustained and rapid growth of market scale [figure]

1058 multiple choice questions (20 points)

JS Part 4

Svn local computer storage configuration
![Analysis of China's integrated circuit industry chain in 2021: huge downstream market demand [figure]](/img/de/d73805aaf4345ca3d2a7baf85aab8d.jpg)
Analysis of China's integrated circuit industry chain in 2021: huge downstream market demand [figure]

Analysis on the development of duty-free industry in Hainan Province in 2021: the implementation of the new policy makes the duty-free market in Hainan more "prosperous" [figure]

Analysis on the development of China's graphene industry chain in 2021: with the support of energy conservation and environmental protection policies, the scale of graphene industry will continue to e
![[quick view] Analysis on the development status and future development trend of the global and Chinese diamond cultivation industry in 2021 [figure]](/img/f1/972a760459a6d599b5681aa634df09.jpg)
[quick view] Analysis on the development status and future development trend of the global and Chinese diamond cultivation industry in 2021 [figure]

mysql 数据恢复 (.ibdata1, bin log)
随机推荐
Encryption related to returnee of national market supervision public service platform
Jmeter- (V) simulated user concurrent login for interface test
Easygbs solution to video playback failure caused by tcp/udp configuration problems
How to generate code-11 barcode in batch through TXT file
Installing serverstatus probe using pagoda
Why not use math random() ?!
The compatibility of remotefx schemes is related to multiple factors
Analysis on the development prospect of China's brain computer interface industry in 2021: wide application prospect, sustained and rapid growth of market scale [figure]
Analysis on development history, industrial chain, output and enterprise layout of medical polypropylene in China in 2020 [figure]
Why don't I suggest you use "! = null" to judge empty space?
1058 multiple choice questions (20 points)
The difference between code39 and code93
JS counts the number of times a string appears in another string
Analysis on demand and market scale of China's steamed stuffed bun industry in 2020 [figure]
Learning summary of spanquery source code
The MIUI 13 development version of Xiaomi mobile phone blocks the chrome application and cannot be opened after installation
Analysis of China's integrated circuit industry chain in 2021: huge downstream market demand [figure]
The difference between the use of return, break and continue in the if statement in JS
Gakataka student end to bundle Version (made by likewendy)
Even if you don't learn gradle, these common development operations are worth mastering