• about reply
Alpha Reply Logo
Menu
  • Solutions
    Solutions
    • Solutions
    • Fusion
    • Synapse
  • Insights
    Insights
    • Insights
    • Success Stories
    • Articles
    • Events
    • Tutorials
  • Partnerships
Choose language:
  • about Reply
Alpha Reply Logo
Focus On

Synapse Software Architecture

Julien Recan, Partner, Alpha Reply

This third blog post is part of the series on Synapse — Alpha Reply's Platform for testing and stress-testing Financial Institutions Financial Crime Control Environment.

In the following you dig deeper into the software architecture of Synapse.

As per our last blog post, Synapse is being developed using Golang (https://golang.org) and relies on the agent based simulation model. In our case, this means instanting a set of agents that transact between themselves.

synapseblogenvironment-1408x704.jpg 0 

The main routine

The simulation is initiated by a configuration file, which defines:

  • The state of the world to simulate in terms of the agents — number of banks, corporates and individuals as well as their profile (more on that later)
  • The duration of the simulation in days
  • Technical details such as where to dump the transactions (e.g cloud storage, Kafka queue and/or Core Banking System specific connector)

The second step is to instantiate a cache that contains the agents and to initiate various parameters for these agents.

Finally, the simulation starts, looping forward on the number of days specified in the configuration file. Each day, the simulation:

  • Loops on all the Agents in the cache and calls a "Tick" method on each Aspect attached to an Agent. Those "Tick" methods are responsible for creating actual Transactions which are store in the Agent's TransactionBuffer
  • Each Transaction is then applied to each Agent that is a party to the Transaction. Applying a transaction in effect impacts one or more items of the BalanceSheet structure of each Agent and the Agent's Transaction Buffer is cleared
  • Finally, Transactions are forwarded using the protocol defined by the user (storage for batch processing or through Kafka for streaming)

Although simple in theory, the implementation of the main loop is quite involved when one is optimising for speed. Hence, the loop involves carefully structured go-routines and cache mutexes who work together to achieve high parallelism (this will be the topic of a future post).

In the rest of this post, we will go over the design of the four key structures / interfaces (Agent, Aspect, Transactions and BalanceSheet).

Agent

The Agent is the key structure of Synapse and can represent an Individual, a Corporate or a Financial Institution (FI). The base structure contains mostly technical attributes and methods. Three different structures corresponding to Individual, Corporate and FI are then composed from the base Agent structure and define further agent type specific attributes (Golang does not have a concept of inheritance and instead relies on composition and interfaces for polymorphism).

Importantly, Agent structures have:

  • A collection (map) of Aspects
  • A BalanceSheet structure
  • A buffer (slice) of Transactions

Aspects

Aspects are the mechanism used to script our agents' Transaction Behaviour. Technically, an Aspect is an interface with a few methods, the main one being the "Tick" method whose aim is to return a slice of Transactions that fill the TransactionBuffer. The implementation of this method is where the implementation of the Agent's behaviour is done, and composing those (i.e adding and removing Aspects from an Agent is how we can achieve rich and dynamic behaviour scripting).

BalanceSheet

The BalanceSheet structure represents an agent's … balance sheet. The structure defines the various assets and liabilities of an agent and is updated on every loop to reflect the daily transactions that each agent undertook. Examples of Individual Agent Assets include CashAccounts, CurrentAccounts (with a pointer to a Bank FI), various Financial and non-Financial Assets.

Transactions

Transactions are the key output of Synapse — along with Corporate and Individual Agents attributes (i.e. KYC information) — that is used by Synapse's users to test their Financial Crime Controls (transaction monitoring, customer risk scoring, etc…). Transactions have many types, each composing the base Transaction structure. Examples are cash transactions, ATMWithdrawal, CashDeposit, WireTransfer, LoanContract, POSDebitCardTransaction…

Importantly, each transaction defines how it applies to the Balance Sheet of the two parties of that transaction.

Conclusion

Taken together, those concepts allow Synapse to simulate realistic transactions that emanate from agents that act in an economically realistic way, accounting for their balance sheet positions at all times.

This post only covers the very high level structure of the program, and we will be digging into those various concepts in future ones. Next week, as requested by our readers, we will get into the details of a few key aspects used to script various consumption behaviours of individuals, as well as a first aspect used to emulate a typical money-laundering scheme.

Stay tuned!

If you would like to join us to improve Synapse coverage and assess how you can leverage it for your organisation, please contact us at

RELATED CONTENTS

SYNAPSE OVERVIEW 0

BLOG POST by Julien Recan, Partner, Alpha Reply

SYNAPSE OVERVIEW

This blog post is about Synapse - Alpha Reply Simulation Platform that empowers Financial Institutions to test their Financial Crime control environment. You get an overview of what Synapse is all about, covering both business and technical aspects of developing such a platform.

BLOG POST by Julien Recan, Partner, Alpha Reply

SYNAPSE – A SOLUTION TO FINANCIAL CRIME

Alpha Reply exists to help Financial Institutions solve complex business problems using data, models, and technology.

SYNAPSE – A SOLUTION TO FINANCIAL CRIME 0
Fusion - Overview 0

Fusion - Overview

Fusion is a fully adaptive and data-driven customer behavior recognition system that is designed to be 100% Covid safe and dramatically improves the AML recognition process. The main purpose of Fusion is to provide the user with a fully data-driven methodology for constructing customer segments that exhibit similar (financial) behavior.

 
 
 
 
Reply ©​​ 2023​ - Company Information -
 PrivacyCookie Settings​​
  • About Reply​
  • Inves​tors​​
  • Newsroom
  • Follow us on
  • ​​
​​
  • ​
  • ​Privacy & Cookies Policy​
  • Information (Client)
  • Information (Supplier)
  • Information (Candidate)​​