graphql in leanix enterprise architecture management @ bonnagile meetup

Post on 07-Jan-2017

173 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

GraphQL @ LeanIX

Patrick Surrey & Dr. Niklas Henrich

2

Patrick Surrey

• At LeanIX for about a year

• Frontend Developer

3

Niklas Henrich

• At LeanIX for about half a year

• Frontend Developer

Namhafte Unternehmen vertrauen bei ihrenHerausforderungen in der IT bereits auf LeanIX

4

Merger&Acquisition

Risiko-Management

ITKomplexitätsreduktion

DigitaleTransformation

Energie

Versicherung

Industrie

E-Commerce

Gesundheit

Logistik

Chemie&Pharma

Medien

TOOL DEMO

5

Document ITArchitecture

Collaborate withinIT Community

Analyze, Design andExecute Roadmaps

Key Focus: Document complex IT Landscapes

7

LEANIX 4.0:“PATHFINDER”

8

LeanIX Data Model – Overview

9

Interface

Application

Provider

ITComponent

Project

UserGroup

DataObject

Tech.Stack

BusinessCapability

Process

LeanIX Data Model – Overview

10

ITComponent

CustomFactSheets

CustomRelations

CustomAttributesA

B

C

LeanIXEAMDataModel LevelsofFlexibility

A

LeanIX Data Model – Overview

11

ITComponent

CustomFactSheets

CustomRelations

CustomAttributesA

B

C

LeanIXEAMDataModel LevelsofFlexibility

Project

B

LeanIX Data Model – Overview

12

CustomFactSheets

CustomRelations

CustomAttributesA

B

C

LeanIXEAMDataModel LevelsofFlexibility

Product

C

13

Pathfinder is a complete rewrite of the LeanIX Core

14

Elastic&Graph

View

Controller

Model

DB

SinglePage App

API

DB

API

Frontend Services

BackendMicro Services

InfrastructureServices

REST APIs are great – but have limitations

15

/capabilities /applications

GET GET

16

“A query language for your API”

http://graphql.org/

17

History

• 2012nativemobileclientforNewsFeed

• Early2015announcedpublicly(https://www.youtube.com/watch?v=9sc8Pyc51uU)

• Sep.2015officiallyopensourced

• Nov.2016:Manymoreusers

18

Basic idea

Server

WHATisavailable

Client

WHICHdataisneeded

1.Schema

2.Datarequirements

Java,Node,Ruby,PHP,Go,Scala,.NET… SimpleHTTP-Client

http://graphql.org/code/

LIVE DEMO

19

20

Angular 2 architecture

HttpService

AuthHttpService

GraphqlService

CommentsServiceCommentsComponent

httpreq.

WriteComment CommentsList

UserInfo UserInfo Comment

loadComments()

toJSON &checkforerrors

BuildGraphQLquery

21

Angular 2: Improvements

• String concatenation for query building

• Hard to unit test

• Hard to manipulate and combine

è Abstraction: Query, Fields, Parameters (utilize TypeScript)

Backend Architecture -Read Data

22

Arbiter(Domain-Level)

(Requestparsing)

TransitiveQueries SearchRetrieval

Backend Architecture -Write Data

23

Arbiter(Domain-Level)

(Requestparsing)

Backend Architecture -Write Data

24

Arbiter(Domain-Level)

(Requestparsing)

Backend Architecture -Write Data

25

Arbiter(Domain-Level)

(Requestparsing)

EventBus

Lessons learned

26

• Use GraphiQL early on (no need for cURL or Postman)

• No dead ends – it’s all a graph

• Be prepared to redesign

• Be prepared to discuss (generic vs. specific)

• No best practices / patterns available yet

Summary

27

Summary

28

Thanks!Questions?

top related