+ All Categories
Home > Documents > instant payments platform How to build a European scale · 2013 - Partnership to develop JDG...

instant payments platform How to build a European scale · 2013 - Partnership to develop JDG...

Date post: 16-Oct-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
60
How to build a European scale instant payments platform SIA and Red Hat Giovanni Fulco, Giuseppe Bonocore, Ugo Landini May 2018
Transcript
Page 1: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

How to build a European scale instant payments platformSIA and Red Hat

Giovanni Fulco, Giuseppe Bonocore, Ugo Landini

May 2018

Page 2: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Giovanni Fulco Software Architect

Ugo Landini Principal Solution Architect

Mattia Ronchi Senior Technical Analyst

Giuseppe Bonocore Solution Architect

Page 3: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

SIA in a nutshell

CARDS 6.1 billion operations

PAYMENTS 3.3 billion transactions

CAPITAL MARKETS 56.2 billion financial transactions

NETWORK 784 terabytes of data carried

Page 4: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

“Everyone will be able to use their own money anytime, anywhere, simply and securely.”

SIA Vision

“Open unlocks the world’s potential.”

Red Hat Vision

Page 5: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

SIA & Red Hat

2000 - First application delivered on linux OS

2004 - New Trading platform on RHEL 2.1

2010 - Real Time Kernel Adoption

2013 - Partnership to develop JDG Library

2016 - Instant Payment Platform

Page 6: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Wire transfer without Instant Payments

Page 7: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Bank

New Wire Transfer

1 2 3

Page 8: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Bank

Select Recipient:

GiovanniFulco

MattiaRonchi

GiuseppeBonocore

UgoLandini

1 2 3

Page 9: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Bank

100 €

SEND

Select amount:

1 2 3

Page 10: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Page 11: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Page 12: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Homebanking Search...

Wire Account Received:

100 €OK

_ x

Page 13: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Wire transfer with Instant Payments

Page 14: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Bank

New Wire Transfer

1 2 3

Page 15: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Bank

Select Recipient:

GiovanniFulco

MattiaRonchi

GiuseppeBonocore

UgoLandini

1 2 3

Page 16: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Bank

100 €

SEND

Select amount:

Instant Payment:

1 2 3

Page 17: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

< 50mS

Page 18: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

My Homebanking Search...

Wire Account Received:

100 €OK

_ x

Page 19: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

What’s under the hood

Page 20: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

What’s under the hood● JDG, In Memory Data Grid

○ Scalable and elastic grid for exceptional performances● AMQ

○ High performance messaging● FIS, Camel on OpenShift

○ Superdynamic integrations● CASSANDRA, NoSQL DB

○ Store transaction history for non repudiation / antifraud

Page 21: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Request sent to bankBank

BankReceiver

Site A Site B

1 2

3

4

567

1

2

3

4

5

6

7

SenderBank calls Instant Payments

Request is stored in JDG

JDG replicates cross site

Req is stored in Cassandra

Tx is propagated to bank

Receiver asked for confirm

Fuse

JDG

Instant Payments

Fuse

JDG

Page 22: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Bank Confirms PaymentBank

BankReceiver

Site A Site B

6 5

23

41

1

2

3

4

5

6

SenderConfirmation is stored in JDG

JDG replicates cross site

Req is stored in Cassandra

Tx is propagated to bank

Sender is notified

Fuse

JDG

Instant Payments

Fuse

JDG

< 50mS !

Page 23: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

JDG, In Memory Data Grid

Page 24: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Memory is the new disk

Page 25: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

JDG: JBoss Data Grid

In-memory data = all data needed is to be kept in memoryGrid = too big for one node, data is distributed in cluster

See "memory" across machines as a unified data store

Read-through, write-through, write-behind

• Polyglot • Extreme Performance• Linear Scalability• Fault Tolerant• Event driven

Page 26: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Memory cluster

Page 27: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Distributed mode (typically 1 replica)

Page 28: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Adding a valuePUT(K1,V)

Page 29: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Adding a valuePUT(K1,V)

K1 K1

Page 30: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Values are distributedPUT(K2,V)

K1 K1

Page 31: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Values are distributedPUT(K2,V)

K2K1 K1 K2

Page 32: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Keys are distributed consistently through the cluster

K2K1 K1 K2

K4 K5

K3

K5 K4

K3

Page 33: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Consistent Hashing

Given the same topology (i.e. number of nodes), same keys are always hashed on the same nodes. Consistent hashing can be calculated on clients too, so they can reach the right node for any given key

Page 34: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

So reads go directly on the “right” node...

K2K1 K1 K2

K4 K5

K3

K5 K4

K3

GET(K2)

Page 35: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

K2K1 K1 K2

K4 K5

K3

K5 K4

K3

GET(K5)

... thx to consistent hashing

Page 36: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

K2K1 K1 K2

K4 K5

K3

K5 K4

K3

If you lose or add a node (topology change)...

Page 37: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

K2K1 K1 K2

K4K5 K3K5 K4

K3

…keys are automatically redistributed

Page 38: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

GET(K5)

The client gets the new topology too...

K2K1 K1 K2

K4K5 K3K5 K4

K3

Page 39: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Data Affinity

Data affinity means co-locating data together to improve performance and scalability

Data affinity means co-locating computing code with data too

Page 40: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Data Affinity“Grouping” together all the affine data, for example:

● All Customer data● All Credit card data● Whatever partitioning criteria is

better

Gives:

● Highest possible performance● Lowest possible round trips

Page 41: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Same color == same group

K2K1 K4 K2

K4 K6

K3

K5 K5

K3

K1 K6

K7

K7K8 K8

Page 42: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Project Requirements

Page 43: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Euro Banking Association - RT1

RT1 is an instant payment system that will provide the European payments industry with a pan-European infrastructure platform for real-time payments in euro from day one of the SEPA Instant Credit Transfer Scheme.

Page 44: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Constraints

5,000 tx/sec Active/Active geo sites

27 Mln Payments/day 0 Message loss

< 900 ms Roundtrip 24/7/365 Availability

Page 45: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Challenges and Solutions

Page 46: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Challenge

Due to low latency and replica requirements, we could not adopt a traditional db-centric application

Page 47: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Solution

We adopted a full in-memory solution relying on Jboss DataGrid

Non DB Centric application

Page 48: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Challenge

Cross-site replica needs to be synchronous, and the number of remote operations must be low

Page 49: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Solution

DataGrid key affinity: Each transaction is handled by the node which owns the relevant data.

Minimize remote communication

Page 50: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Challenge

Incoming messages need to be managed in an highly available, cross site infrastructure

Page 51: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Solution

AMQ Network of brokers allow highly available, zero message loss topologies (site disaster resilient)

Highly available messaging

Page 52: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Challenge

Multi site active-active increases the risks of split brains

Page 53: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Solution

Datagrid owner distribution between sites allow to operate in case of network split

Avoid split brain

Page 54: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank
Page 55: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank
Page 56: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Next Steps

Page 57: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Next Steps

Adoption of EnMasse (Messaging As A Service in OpenShift), to streamline the management of queues

EnMasse

Page 58: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Next Steps

Containerization with OpenShift to allow safer releases of newer version and instances

Release and scale, without service disruption

Page 59: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

Next Steps

Federate other payment circuits, in order to reach more customers

Broader Circuit

Page 60: instant payments platform How to build a European scale · 2013 - Partnership to develop JDG Library 2016 - Instant Payment Platform. Wire transfer without Instant Payments. My Bank

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat


Recommended