Learn the basics - a very simple introduction
What is the Genesis platform?
The Genesis platform enables you to design, build and run applications for the financial markets.
Your application has:
- a back end - a server - that provides a database and the business logic that handles the various events that occur when the application is running
- a front end that enables users to view data and interact with information in required ways
Let's spend some time looking at the back end.
The simplest way of thinking about the back end is that it is a database surrounded by a number of modules. The essential modules are:
- the Data Server (real-time data)
- the Request Server (static data)
- the Event Handler (interacts with other modules in order to make changes to the database)
These elements on their own can create a complex and effective back end, depending on the complexity of the data model for your database, and how thoroughly you define the contents of the three key modules.
The front end of your application is able to connect to the specific resources in the three key back-end modules to retrieve the required data, display it in the appropriate way, and trigger changes in the database (such as to insert a new record).
Our simple application looks like this:
A little more
Let's add some more detail.
A Router
There is a configurable Router module for both the front and back ends. This ensures that all traffic between the two reaches its destination securely.
Access control
Importantly, you need to make the application secure. This is done by the Auth module. Configure the Auth module to control access to your application (authentication) and permission to see specific items of data or functions (authorisation); to make authorisation precise, it is coded into each key module (if authorisation = x execute ABC).
With those things in place, our diagram now looks like this:
A lot more
In most cases, you will consider adding further modules to address the scope of your application. For example, you can:
- use the Consolidator to aggregate data or perform other calculations
- integrate with market data or other systems to handle orders, trades, risk and other financial requirements
- use Notify to integrate with email or professional chatrooms
These are typical examples, but there are more. If there is a special niche that is not covered, you can create your own module from scratch.
We have added these three examples, and our simple diagram is beginning to look a bit more complex now:
What you have learnt so far
So far, this is what we have learnt about the back end:
- A database is at the heart, surrounded by three key modules that serve the front end: Data Server (real-time data), Request Server (static data) and Event Handler (database changes).
- The Router module ensures messages are routed correctly to and from the front end.
- The Auth module controls access to the system (authentication) and to specific data and functions (authorisation). Note that the authorisation is defined in the key modules.
- You can add other modules to cover (for example) aggregated (calculated) data and integrations with internal and external systems.
- You can also create your own modules to cover specific requirements.
The front end
To build a rich front end, Genesis provides Foundation UI. This gives you a large set of Genesis web components that you can add to your pages and configure. These include:
-
grids and charts that you can connect to the relevant resources in your Data Server or Request Server
-
interactive elements, such as forms, buttons and checkboxes
-
presentation components, such as banners, dividers, breadcrumbs and progress indicators
Once your components have been configured and connected to the back-end resources, you can use Design System tokens to control colours, typography and sizing of the display.
Micro front-ends
For quick development of common requirements, there are several micro front-ends that you can insert and configure. These are effectively micro applications for the front end, offering a pre-built set of components.
The Entity Management front end, for example, gives you a ready-made grid and an accompanying form for submitting new records. The form is generated automatically from the fields in the back-end resource that you are connected to.