Skip to content

Commit

Permalink
Merge pull request #2013 from genesiscommunitysuccess/origin/new-doc-…
Browse files Browse the repository at this point in the history
…structure/PTL-1703

Origin/new-doc-structure/PTL-1703: New Platform Overview
  • Loading branch information
wjhendry authored Dec 2, 2024
2 parents 751331c + 6a0e80b commit 6d7fada
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 12 deletions.
50 changes: 38 additions & 12 deletions docs/001_develop/platform_overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ sidebar_label: 'Platform overview'
id: 'platform-overview'
---

The Genesis Application Platform enables you to build fast, compliant, secure, scalable, real-time financial-markets-grade applications.
The Genesis Application Platform enables you to deliver fast, compliant, secure, scalable, real-time financial-markets-grade applications.

With a choice of development environments and tools, you can create, build and preview applications up to 10 times faster than before, and you can ensure that your applications reach production quickly.
With a choice of development environments and tools, you can create, build and preview applications up to ten times faster than before, and you can ensure that your applications reach production quickly.

Here's what you've got.

Expand All @@ -23,7 +23,7 @@ Within your views, you can also define derived fields (columns) that are calcula
View our reference documentation on the [data model](/develop/server-capabilities/data-model/).
:::

## Development suite
## Server architecture

The platform has a development suite of pre-built microservices, which enables you to assemble a complete, robust and rich architecture quickly - simply by selecting and configuring the microservices that address your business requirements.

Expand All @@ -37,7 +37,7 @@ GPAL abstracts away complex algorithms to provide simple-to-understand syntax, e
View our reference documentation on the [development environment](/develop/development-environments/).
:::

## Core logic and data manipulation microservice (Event Handler)
### Core logic and data manipulation microservice (Event Handler)

Applications typically start with the APIs required to contain the logic the user will need to create or modify the underlying data for the application.

Expand All @@ -57,7 +57,7 @@ As data flows through the Event Handler, events are published to the rest of the
View our reference documentation on the [core business logic](/develop/server-capabilities/core-business-logic-event-handler/).
:::

## Real-time query microservice (Data Server)
### Real-time query microservice (Data Server)

Most financial applications need to provide views that are live and updated in real time. For this, Genesis provides the Data Server microservice.

Expand All @@ -71,7 +71,7 @@ The Data Server preloads the data defined for each query, maintains meta-data fo
View our reference documentation on the [real-time queries](/develop/server-capabilities/real-time-queries-data-server/).
:::

## Real-time aggregation microservice (Consolidator)
### Real-time aggregation microservice (Consolidator)

Another common financial services application requirement is the ability to take data and aggregate it into different aggregation keys. This can give you trade aggregation into positions or orders, risk numbers, and so on. Genesis provides the Consolidator Microservice for this use case.

Expand All @@ -87,9 +87,9 @@ There is a whole range of microservices and components you can use to add more c

Check the [Evaluator](/develop/server-capabilities/real-time-triggers-evaluator/), which can be configured to react to the stream of data and detect patterns using a complex expression builder in order to detect and react using custom logic.

## Access and authorization
### Access and authorization

Users must be authenticated before they can use a Genesis application, whether it be via a user interface, or using a client API. There is no need to code this controlled access. Simple set-up enables you to create a password for the application itself, or you can use SSO or an external SSO provider.
Users must be authenticated before they can use a Genesis application, whether it be via a user interface, or using a client API. There is no need to code this controlled access. Simple set-up enables you to create a password for the application itself, or you can use LDAP or an external SSO provider.

Authorization enables you to control precisely which users have access to specific information and functions. For example, you can specify that User A and User B have access to a specific query or event. You can do this with as little as a single line of code in the relevant query or event. More precisely, you can set them so that so that User A can only view trades settling in one country, while user B can only view this settling in another country.

Expand All @@ -101,21 +101,47 @@ View our reference documentation on [Authorization](/develop/server-capabilities
View [how to authorize your data](/how-to/ht-auth/).
:::

## Genesis Web User Interface components
## Web application architecture

Every application needs a rich, responsive, real-time user interface. You can build this quickly from a wide choice of Web UI components. You can select one, configure it and connect it the relevant data source through the APIs exposed by the Genesis microservices.
Every application needs a rich, responsive, real-time user interface. You can build this quickly from a wide choice of Web UI components in your framework of choice from raw Web Components to Angular and React. You can select one, configure it and connect it the relevant data source through the APIs exposed by the Genesis microservices.

These components can be quickly composed into fully functional web application using any of the major Web UI frameworks, such as Angular or React. Or you can simply work with the raw Web Components.

So you can quickly add grids of data, input forms, charts and more. Micro front-ends, such as the entity manager enable you to set up a grid with an accompanying form for submitting and changing records in a single configuration. At the other end of the scale, there is complete scope for creating pages from lower-level building blocks such as Dialogs, Menus, Banners, Breadcrumbs.
So you can quickly add grids of data, input forms, charts and more. Micro front-ends, such as the entity manager enable you to set up a grid with an accompanying form for submitting and changing records in a single configuration. At the other end of the scale, there is complete scope for creating pages from lower-level building blocks such as Dialogs, Menus, Banners and Breadcrumbs.

### Accelerator tools
The platform provides tools to give you ways of creating your web UI at speed. For example, the Design System Configurator gives enables you to define a single consistent layout for all your pages - simply by adjusting some settings, where you can immediately see the effect of your change. When you have the right look, one click saves the code for your design system.

![Design System Configurator](/img/000_platform-overview/design-system-config.png)

There is also the UI Generator, which enables you to generate the code for a screen layout from a static image. To refine and extend the initial UI generated, it includes a handy HTML catalogue, where you can just click to insert the relevant code snippet into your code and complete the configuration.

:::info
View our reference documentation on [components](/develop/client-capabilities/).

View [how to create a simple front end](/how-to/ht-front-end-example/).
:::

## Architecture
## Genesis application architecture

The diagram below provides an overview of the typical components in any given application.

![Entity Manager Example](/img/000_platform-overview/simple-3.png)

- The Event Handler enables the web client (and other clients) to interact with the database.

- The Data Server enables the the web client and other clients to retrieve streaming data that is updated in real time.

- Similarly, the Request Server supplies snapshot data - anything that is not modified during the day,

- Authorization is coded into each of these to ensure that only permissioned users have access to the relevant data and features. This is policed by the Auth component, which is essential to all Genesis applications.

- The Consolidator aggregates data in real time - it is the Data Server that makes this data available to clients.

- The Genesis Router ensures that traffic between users on the front end and the data and features provided by the server is always routed to the correct location. You do not need to add any code; once your permissions have been set up, the Router module handles this automatically.

- The Data Pipeline takes in data from external systems, transforming it into the correct format for the application's database (the database actions are handled by the Event Handler). It is able to transform data into formats that suit the relevant external systems that you are passing data to.

- Other components provide functions that are common requirements to financial applications. In the example above, the Notifications and Alerts component has been added, enabling the application to set up not only internal notifications to users within the application, but also outgoing messages via email, Symphony or Microsoft Teams.


Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/img/000_platform-overview/simple-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 6d7fada

Please sign in to comment.