Select Page

Wouldn’t it be nice to have a super simple data query language for your Avaloq data?

I mean really simple like so:

{
  businessPartner(id: 2711) {
    id
    name
    type
  }
}

which returns:

{
  "id": 2711
  "name": "ACME AG"
  "type": "customer"
}

You immediately understand:

  • The structure of the query determines the structure of the result
  • The result is exactly what you requested for, not more or less
  • and of course: the result is JSON

This is the GraphQL query language!

And because GraphQL is based on a Type System (or “Schema”) organized in terms of types and fields, not endpoints, we can access the full capabilities of Avaloq’s famous objects in a more natural way. Objects like Person, Address, BusinessPartner, Container, Position, etc.  including their extensions (classes, keys, additions) and object relations.

  • you could write really powerful yet simple queries, like so:
{
  person(id: 9999) {
    address(type: POSTAL) {
      street
      city
      country
    }
    contracts {
      name
      type
    }
    portfolios {
      positions {
        name
        qty
      }
    }
  }
}

I let you imagine the result.

I also let you imagine writing this query in SQL or Avaloq Script

Again, you get the point:

  • we fetch data over several levels in the data hierarchy and its still very comprehensive
  • and because of the Type System in the editor you get:
    • Syntax highlighting
    • Real-time error highlighting and reporting
    • intelligent type ahead of fields, arguments, types, and more

Take a look at GraphiQL – an in Browser IDE for GraphQL – it will blow you away.
(I will put together an online demo with mocked Avaloq data to show how to access Avaloq kernel objects, docs, extensions (classes, keys, additions), …)

What else do we have…

GraphQL offers architects a flexible and powerful way to let clients query your APIs – a real alternative to REST endpoints.

Developers can build and change GUIs, which use the GraphQL query language to fetch exactly the data needed for that particular component.

Given a more or less complete Type Schema for Avaloq in the backend, the GUI developer does not have to even bother the backend developers. Because the mix and match of the data on the GUI is the job of the GUI developer using GraphQL and not the job of the backend developers.

Security is implemented just like you would do it with your REST API.
Actually GraphQL does not say anything about security.
It is also agnostic regarding the transfer protocol, but implementations basically use HTTP(S).

The backend exposes it capabilities through the Type System (Schema).
The client can get the whole Schema through introspection of the Server.

Especially mobile apps could get a real performance boost – because you fetch exactly the data you need and omit several round trips which are often the case with REST APIs.

Business analysts, developers or tool integrators – all can run against the same GraphQL server endpoint – via mobile application, Browser or any other tool or component.

In this presentation I explore GraphQL and suggest the integration with Avaloq:
Avaloq-Graphql-2017 (V1.31)

See also:

Avaloq GraphQL Server