How GraphQL will change your product development on all levels:
business, product, process, engineering. What impact technology has on different aspects of a company.
8. GraphQL Schema declaration
"Represents user profile"
type User {
id: ID!
firstName: String!
lastName: String!
friends: [User!]
invitedBy: User
}
"Mutations"
type Mutation {
inviteUser(inviteeEmail: String!): Boolean
...
1. User has first and last name
2. User can have multiple friends, or not
3. User can be invited by other user and
this connection is kept
4. You can invite another user by email
9. Schema declaration can be
- Compiled in interactive documentation (GraphiQL)
- Visualized (GraphQL Voyager, GraphQL editor)
How can we use it?
12. Value of GraphQL as a communication language
+ Better understanding of business
logic use cases (onboarding,
working with old features)
ProcessProduct
+ Communication language
between backend development
team and client (web, app) team
+ Async development of features
18. Value of on universal and live API
+ Reuse one API on different
platforms as much as it is
possible - reduce costs
+ Maintain only one version of API, easier to
guarantee quality / write tests
Business Process
Engineering
+ Develop API as you go, it is
easy to change
+ GraphQL – agile of API
21. Value of API as an abstraction layer
+ Save on rewriting old but stable
services
+ Ability to build scalable heterogeneous solutions
+ As an abstraction layer helps to decouple
implementation from clients
Business Process
Engineering
+ Encourages microservice
architecture, fosters small
independent teams
23. GraphQL and Open source community
In addition to the GraphQL reference implementations in JavaScript,
server libraries include:
● C# / .NET
● Clojure
● Elixir
● Erlang
● Go
● Groovy
● Java
● JavaScript
● PHP
● Python
● Scala
● Ruby
24. Open source community benefits
+ Working on recent technologies in
community is good for engineer’s
motivation
+ Active open source community
means that majority of tasks in
the area are already solved
Business Engineering