Architecture overview
Every Genesis application is different, but all Genesis applications share a common architecture. The best way to understand the purpose of all the main elements of this architecture is to familiarise yourself with the server modules and the web front-end.
Data model - inside a fields dictionary
The fields dictionary is where you specify all the fields you need for your data model.
Data model - inside a tables dictionary
Tables of data will be critical to your application, from simple tables of currencies or locations to more complex ones that contain trade or order information (for example).
Data model - inside a view dictionary
Whereas tables tend to be groups of related information, a view is a way of looking at data - in many cases, literally. If you want to show all the trades you have done, then you might want to take some of that data from a table of trades, but you might want to add data from one or more other tables - currency details or counterparty IDs, for example.
Developer training - Day one
This day covers:
Developer training - Environment setup
Workstation set-up
Developer training - fundamentals
Creating financial markets technology today is fundamentally broken – too slow, expensive and high-risk. Genesis is revolutionising software delivery within the financial markets so that any coder can create reactive, performant and compliant applications in days.
Developer training - Introduction
What you'll learn
Excel to genesis - quick guide
Introduction
Front-end basics - add a new page
Creating a new component
Getting Started - Glossary
There is a lot of technology embedded in the Genesis low-code platform. So, inevitably, we have to refer to it in this documentation.
Go to the next level
Now that you have completed the Quick Start and are comfortable with the basics, it is time to build an advanced application that will demonstrate more features of the platform.
Key system files - generated versions
It is important to know that the Genesis low-code platform uses system-generated versions of these system files.
Key system files - Genesis Router
Let us now mention another important system file, Genesis Router. The Genesis Router module controls the routing of the messages between the back end and the front end of your application. You can configure this in the file genesis-router.kts.
Key system files - genesis-system-definitions.kts
The system-definition file, genesis-system-definition.kts, is the basis of all the configurations, scripts, data models, etc.
Key system files - process.xml
Now let us consider a few files that are vital for configuring your application.
Key system files - service-definitions.xml
Every application must have a -service-definitions.xml file. This is where you specify the ports of the various processes. The ports are used to communicate internally between these various processes.
Learn the basics - a very simple introduction
What is the Genesis low-code platform?
Learn the basics - building the database
Once you are happy with your data model, you can build your database.
Learn the basics - building the server
With a database and two modules (a Data Server and an Event Handler) in place to supply data to the front end, we can now build our server.
Learn the basics - creation process
So how would you go about creating something like that?
Learn the basics - next steps
Now, let's just take stock.
Learn the basics - running the server
There are some simple commands that enable you to start and stop your server.
Loading feed data - example source data
Here is an edited example of a source file of issuance data from the Bloomberg feed.
Loading feed data - how to load feed data into an application
Some feeds provide static sets of data that you can download for processing by your application. A good example is traded data from an exchange. This exercise shows you the key points for loading these data files. In this case, we shall use Bloomberg issuance data. We shall load this, parse it to reformat it to Genesis format, then place it in a staging table in a Genesis application. Once it is in the staging table, the data can be passed to other tables within the application.
Loading feed data - SFTP and encryption
If you are loading static data from an external site, this page gives more detail on the SFTP method for obtaining the data. It also looks at how you could deal with encryption and decryption in higher environments.
Modules - inside a Data Server
A Data Server supplies real-time (streaming) data to the front end of your application.
Modules - inside a Request Server
A Request Server supplies static data to the front end of your application.
Modules - inside an Event Handler
Applications must respond immediately to different types of input: inputs from users, messages from other systems, market-data updates and internally calculated analytic signals. These inputs are events.
Other server modules
Application modules
Postgres data pipeline - conclusion
In this tutorial you saw how to integrate with an external PostgreSQL server using the Genesis Data Pipeline configuration.
Postgres data pipeline - create Genesis dictionary
Create new Genesis project
Postgres data pipeline - declare source and mappers
In this part of the tutorial we will declare the PostgreSQL server as a data source and map the incoming rows to a Genesis Table object.
Postgres data pipeline - deploy the application
To deploy your application to your local Linux or WSL environment, see this guide.
Postgres data pipeline - prepare the source data
The source data comes from a PostgreSQL server that has to meet the minimal configuration mentioned here.
Prerequisites - full developer workstation
You can run our Quick Start from a light set-up. However, to set up a full-functioning developer workstation, you need to check out the hardware and software requirements in this section. This will get you fit to do some serious work.
Prerequisites - genx
Seed and Genx
Prerequisites - Gradle deploy plugin
The Genesis low-code platform provides a Gradle plugin that makes it easy to perform all the installation tasks that are
Prerequisites - installing WSL
If you don't have a Linux box for running your Genesis platform, you can use Windows Subsystem for Linux (WSL2) to install a Linux environment on your Windows machine.
Prerequisites - manual installation
To install the Genesis low-code platform on your server, go through the following steps.
Quick start - add business logic
So far, you have a table; now we want to be able to see its content and create new entries.
Quick start - build and deploy
The application has three files that contain vital configuration information:
Quick start - create a new project
Before you start, make sure you have checked out the hardware and software requirements.
Quick start - create a user interface
Now let's create a single page with a grid and a form for entering data.
Quick start - define the data model
Now you are ready to define the fields and tables that make up your data model. This model structures information in a simple way that can be viewed by users and processed by the application.
Quick start - hardware and software
Workstation set-up
Quick start - preparation
Welcome to the quick start tutorial page. Here we are going to create a very simple application using some basic features of the Genesis Platform.
Quick start - run the application
Credentials to login
Quick start - what you will build
The very simple application you will build will look like this:
Server Developer Training - Day five
This day covers:
Server Developer Training - Day four
This day covers:
Server Developer Training - Day one
This day covers:
Server Developer Training - Day three
This day covers:
Server Developer Training - Day two
This day covers:
Server Developer Training - getting started
Environment set-up
Server Developer Training - Introduction
What you'll learn
UI components
To give your front end a wide range of visual possibilities, the Genesis low-code platform provides a wide range of Web Components. These are built on top of Microsoft FAST.
What can I build? - EUC replacement
In financial organisations everywhere, there are spreadsheets that are effective tools, but which pose a significant operational and compliance risk.
What can I build? - introduction
Once you have the Genesis low-code platform, you can develop and deploy your own applications at speed, from the simplest of internal systems to complete exchanges.
What can I build? - new apps from scratch
You don't have to be bound by your existing systems at all. If you have a need for a new application, which looks too ambitious for now, the Genesis low-code platform could make that a realistic proposition in a realistic timeframe.
What can I build? - new e-platforms
You can build complete new trading platforms that integrate with multiple internal and external systems. These are applications with clear user interfaces, highly sophisticated features; they can be specified and built to meet exactly the security and regulatory requirements you require.
What can I build? - workflow
Self-contained systems (aren't you bored by the term "silo") remain a big blocker for anyone looking for efficiency.