Upload
leanix-gmbh
View
173
Download
0
Embed Size (px)
Citation preview
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?