Grokking Techtalk #39: How to build an event driven architecture with Kafka ...Grokking VN
Bài talk chia sẻ về quá trình 2 năm ứng dụng Kafka và Kafka Connect để chuyển đổi mô hình hệ thống của Vexere từ Monolithic thành Microservice, Event Driven:
+ Event driven architecture là gì?
+ Làm thế nào để xây dựng 1 hệ thống event driven architecture một cách hiệu qủa bằng Kafka và Kafka Connect
+ Các use case hữu ích với Kafka & Kafka Connect
+ Kinh nghiệm thực tế và các bài học rút ra
- Về diễn giả: Anh Nguyễn Văn Lợi là một kỹ sư phần mềm với hơn 9 năm kinh nghiệm thực tế từ các công ty có hệ thống lớn trong các mảng VoIP, Ecommerce, Big Data, Logistics. Tại Vexere, anh luôn đề cao tinh thần tự học hỏi, phát triển và chia sẻ để team member liên tục tích lũy kiến thức, kỹ năng, nhằm tăng hiệu quả công việc và mang lại sản phẩm có trải nghiệm tốt nhất cho người dùng.
Một hệ thống với 75.000 đơn hàng/1 ngày, quản lý tới hàng triệu SKU, giao dịch chạy qua hệ thống lên tới con số nghìn tỉ với tổng cộng trên 8.000 khách hàng đang sử dụng.
Đó chính là: Sapo - Phần mềm quản lý bán hàng trên nền tảng mở, quản lý bán hàng đa kênh, sử dụng kiến trúc Microservices thay thế kiến trúc Monolithic cũ.
Qua buổi chia sẻ kéo dài trong 2h, diễn giả Khôi Nguyễn sẽ giới thiệu về mô hình kiến trúc Microservices và một số bài toán đặc thù của Sapo đã được giải quyết dựa trên mô hình này.
Diễn giả:
Nguyễn Minh Khôi (https://www.facebook.com/khoi.nguyen.84 ) -
CTO DKT Technology ( http://www.dkt.com.vn/ )
Plain React detects changes by re-rendering your whole UI into a virtual DOM and then comparing it to the old version. Whatever changed, gets patched to the real DOM.
What are the benefits of reactive programming in java Dmytro Melnychuk
Link to the presentation[PL]: https://youtu.be/_0bv0fZsYuE?t=1477
What kind of beast is "reactive programming" and what are the advantages and possibilities of using it in Java applications. The introduction to reactor pattern, thread-per-connection approach, and propagation of change pattern.
I tried to visualize core problems that reactive programming can solve.
Grokking Techtalk #39: How to build an event driven architecture with Kafka ...Grokking VN
Bài talk chia sẻ về quá trình 2 năm ứng dụng Kafka và Kafka Connect để chuyển đổi mô hình hệ thống của Vexere từ Monolithic thành Microservice, Event Driven:
+ Event driven architecture là gì?
+ Làm thế nào để xây dựng 1 hệ thống event driven architecture một cách hiệu qủa bằng Kafka và Kafka Connect
+ Các use case hữu ích với Kafka & Kafka Connect
+ Kinh nghiệm thực tế và các bài học rút ra
- Về diễn giả: Anh Nguyễn Văn Lợi là một kỹ sư phần mềm với hơn 9 năm kinh nghiệm thực tế từ các công ty có hệ thống lớn trong các mảng VoIP, Ecommerce, Big Data, Logistics. Tại Vexere, anh luôn đề cao tinh thần tự học hỏi, phát triển và chia sẻ để team member liên tục tích lũy kiến thức, kỹ năng, nhằm tăng hiệu quả công việc và mang lại sản phẩm có trải nghiệm tốt nhất cho người dùng.
Một hệ thống với 75.000 đơn hàng/1 ngày, quản lý tới hàng triệu SKU, giao dịch chạy qua hệ thống lên tới con số nghìn tỉ với tổng cộng trên 8.000 khách hàng đang sử dụng.
Đó chính là: Sapo - Phần mềm quản lý bán hàng trên nền tảng mở, quản lý bán hàng đa kênh, sử dụng kiến trúc Microservices thay thế kiến trúc Monolithic cũ.
Qua buổi chia sẻ kéo dài trong 2h, diễn giả Khôi Nguyễn sẽ giới thiệu về mô hình kiến trúc Microservices và một số bài toán đặc thù của Sapo đã được giải quyết dựa trên mô hình này.
Diễn giả:
Nguyễn Minh Khôi (https://www.facebook.com/khoi.nguyen.84 ) -
CTO DKT Technology ( http://www.dkt.com.vn/ )
Plain React detects changes by re-rendering your whole UI into a virtual DOM and then comparing it to the old version. Whatever changed, gets patched to the real DOM.
What are the benefits of reactive programming in java Dmytro Melnychuk
Link to the presentation[PL]: https://youtu.be/_0bv0fZsYuE?t=1477
What kind of beast is "reactive programming" and what are the advantages and possibilities of using it in Java applications. The introduction to reactor pattern, thread-per-connection approach, and propagation of change pattern.
I tried to visualize core problems that reactive programming can solve.
React vs angular what to choose for your appConcetto Labs
Before we move ahead, let’s quickly understand the overview of React Vs Angular for app development Frameworks. Contact Us for choosing the right framework.
CQRS recipes or how to cook your architectureThomas Jaskula
The principles of CQRS is very simple. Separate Reads from Writes. Although when you try to implement it in you can face many technical and functional problems. This presentation starts from very simple architecture and while business requirements are added we consider other architecture ending with a CQRS + DDD + ES one.
Micro Frontends Architecture is micro service approach for Frontend development. Micro Frontends thinks web-app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in it. A team is cross functional and develops its features end-to-end, from database to user interface and take care of CI/CD. Micro service architechure is well know concept for backend point of view but In frontend we need to follow diffrent type of design pattern to achieve this.
Key Take away:
1. Learn about Micro Frontend
2. How to practically use them
3. Key challenges
NgRx is a framework for building reactive applications in Angular with the Management of States. NgRx is inspired by the Redux pattern - unifying the events in your application and deriving state using RxJS.
At a high level, NgRx stores a single state and uses actions to express state changes. It makes Angular development easier by simplifying the application’s state in objects and enforcing unidirectional data flow.
It is established with 5 main components - Store, Actions, Reducers, Selectors, and Effects.
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
Getting Started with NgRx (Redux) AngularGustavo Costa
State management it’s always a pain in any front-end application, mainly if your application is complex or you need to deal with a lot of shared data or frequently state changes. During this talk, we will understand the redux pattern very famous on react ecosystem and why it was created and then apply in a real-world Angular application, but you don’t need to be an expert in Angular, all knowledge can be applied in any Javascript framework or vanilla Javascript.
GraphQL is a query language for APIs and a runtime for fulfilling those queries. It gives clients the power to ask for exactly what they need, which makes it a great fit for modern web and mobile apps. In this talk, we explain why GraphQL was created, introduce you to the syntax and behavior, and then show how to use it to build powerful APIs for your data. We will also introduce you to AWS AppSync, a GraphQL-powered serverless backend for apps, which you can use to host GraphQL APIs and also add real-time and offline capabilities to your web and mobile apps. You can follow along if you have an AWS account – no GraphQL experience required!
Level: Beginner
Speaker: Rohan Deshpande - Sr. Software Dev Engineer, AWS Mobile Applications
The monolith to cloud-native, microservices evolution has driven a shift from monitoring to observability. OpenTelemetry, a merger of the OpenTracing and OpenCensus projects, is enabling Observability 2.0. This talk covers the fundamental concepts of observability and then demonstrates how to instrument your applications using the OpenTelemetry libraries.
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
In Angular , events such as button click or any other sort of events can also be handled very easily. The events get triggered from the html page and are sent across to Angular JS class for further processing.
Data binding is a core concept in Angular and allows to define communication between a component and the DOM, making it very easy to define interactive applications without worrying about pushing and pulling data. There are four forms of data binding and they differ in the way the data is flowing.
This is a talk on how you can monitor your microservices architecture using Prometheus and Grafana. This has easy to execute steps to get a local monitoring stack running on your local machine using docker.
Graphql for Frontend Developers Simplifying Data Fetching.docxssuser5583681
In today’s digital landscape, the demand for efficient and flexible APIs (Application Programming Interfaces) has grown exponentially. Developers are constantly seeking ways to improve data retrieval and manipulation processes while ensuring seamless integration between client applications and server resources. One technology that has gained significant popularity in recent years is GraphQL Server.
GraphQL across the stack: How everything fits togetherSashko Stubailo
My talk from GraphQL Summit 2017!
In this talk, I talk about a future for GraphQL which builds on the idea that GraphQL enables lots of tools to work together seamlessly across the stack. I present this through the lens of 3 examples: Caching, performance tracing, and schema stitching.
Stay tuned for the video recording from GraphQL Summit!
React vs angular what to choose for your appConcetto Labs
Before we move ahead, let’s quickly understand the overview of React Vs Angular for app development Frameworks. Contact Us for choosing the right framework.
CQRS recipes or how to cook your architectureThomas Jaskula
The principles of CQRS is very simple. Separate Reads from Writes. Although when you try to implement it in you can face many technical and functional problems. This presentation starts from very simple architecture and while business requirements are added we consider other architecture ending with a CQRS + DDD + ES one.
Micro Frontends Architecture is micro service approach for Frontend development. Micro Frontends thinks web-app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in it. A team is cross functional and develops its features end-to-end, from database to user interface and take care of CI/CD. Micro service architechure is well know concept for backend point of view but In frontend we need to follow diffrent type of design pattern to achieve this.
Key Take away:
1. Learn about Micro Frontend
2. How to practically use them
3. Key challenges
NgRx is a framework for building reactive applications in Angular with the Management of States. NgRx is inspired by the Redux pattern - unifying the events in your application and deriving state using RxJS.
At a high level, NgRx stores a single state and uses actions to express state changes. It makes Angular development easier by simplifying the application’s state in objects and enforcing unidirectional data flow.
It is established with 5 main components - Store, Actions, Reducers, Selectors, and Effects.
Understanding MicroSERVICE Architecture with Java & Spring BootKashif Ali Siddiqui
This is a deep journey into the realm of "microservice architecture", and in that I will try to cover each inch of it, but with a fixed tech stack of Java with Spring Cloud. Hence in the end, you will be get know each and every aspect of this distributed design, and will develop an understanding of each and every concern regarding distributed system construct.
Getting Started with NgRx (Redux) AngularGustavo Costa
State management it’s always a pain in any front-end application, mainly if your application is complex or you need to deal with a lot of shared data or frequently state changes. During this talk, we will understand the redux pattern very famous on react ecosystem and why it was created and then apply in a real-world Angular application, but you don’t need to be an expert in Angular, all knowledge can be applied in any Javascript framework or vanilla Javascript.
GraphQL is a query language for APIs and a runtime for fulfilling those queries. It gives clients the power to ask for exactly what they need, which makes it a great fit for modern web and mobile apps. In this talk, we explain why GraphQL was created, introduce you to the syntax and behavior, and then show how to use it to build powerful APIs for your data. We will also introduce you to AWS AppSync, a GraphQL-powered serverless backend for apps, which you can use to host GraphQL APIs and also add real-time and offline capabilities to your web and mobile apps. You can follow along if you have an AWS account – no GraphQL experience required!
Level: Beginner
Speaker: Rohan Deshpande - Sr. Software Dev Engineer, AWS Mobile Applications
The monolith to cloud-native, microservices evolution has driven a shift from monitoring to observability. OpenTelemetry, a merger of the OpenTracing and OpenCensus projects, is enabling Observability 2.0. This talk covers the fundamental concepts of observability and then demonstrates how to instrument your applications using the OpenTelemetry libraries.
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
In Angular , events such as button click or any other sort of events can also be handled very easily. The events get triggered from the html page and are sent across to Angular JS class for further processing.
Data binding is a core concept in Angular and allows to define communication between a component and the DOM, making it very easy to define interactive applications without worrying about pushing and pulling data. There are four forms of data binding and they differ in the way the data is flowing.
This is a talk on how you can monitor your microservices architecture using Prometheus and Grafana. This has easy to execute steps to get a local monitoring stack running on your local machine using docker.
Graphql for Frontend Developers Simplifying Data Fetching.docxssuser5583681
In today’s digital landscape, the demand for efficient and flexible APIs (Application Programming Interfaces) has grown exponentially. Developers are constantly seeking ways to improve data retrieval and manipulation processes while ensuring seamless integration between client applications and server resources. One technology that has gained significant popularity in recent years is GraphQL Server.
GraphQL across the stack: How everything fits togetherSashko Stubailo
My talk from GraphQL Summit 2017!
In this talk, I talk about a future for GraphQL which builds on the idea that GraphQL enables lots of tools to work together seamlessly across the stack. I present this through the lens of 3 examples: Caching, performance tracing, and schema stitching.
Stay tuned for the video recording from GraphQL Summit!
GraphQL is query language for APIs, but what are the advantages and how would one implement such in their microservices/APIs. In this session, I will go through the basics of GraphQL, different aspects of GraphQL and architecture of such APIs. There will be a demo/live-coding on, how 4 different ways we can implement GraphQL for a Springboot microservice/API. Lots of examples, live coding and helpful comparison on structure, usage and implementations of GraphQL in Springboot & Java world.
GraphQL is a query language for APIs and a server-side runtime. It allows fulfilling queries by using a type system you define for your data. Why use GraphQL? What are the pros and cons? We did research and summarised our conclusions.
GraphQL is a syntax that describes how to ask for data, and is generally used to load data from a server to a client. GraphQL has three main characteristics:
It lets the client specify exactly what data it needs.
It makes it easier to aggregate data from multiple sources.
It uses a type system to describe data.
Simplify Access to Data from Pivotal GemFire Using the GraphQL (G2QL) ExtensionVMware Tanzu
GemFire GraphQL (G2QL) is an extension that adds a new query language for your Apache Geode™ or Pivotal GemFire clusters allowing developers to build web and mobile applications using any standard GraphQL libraries. G2QL provides an out-of-the-box experience by defining GraphQL schema through introspection. It can be deployed to any GemFire cluster and serves a GraphQL endpoint from an embedded jetty server, just like GemFire’s REST endpoint.
We will be demoing G2QL using a sample application that can read and write data to GemFire and share data between applications built using GemFire client APIs, showing you:
- How to use GraphQL to query and mutate data in GemFire
- How to use open-source GraphQL library to build web and mobile applications using GemFire
- How to use GraphQL to deal with object graphs
- How G2QL can simplify their overall architecture
Presenters : Sai Boorlagadda, Staff Software Engineer & Jagdish Mirani, Pivotal
Building Fullstack Serverless GraphQL APIs In The CloudNordic APIs
Follow along as we build a GraphQL API using Apollo and Neo4j Database. We’ll show how to leverage the scale of serverless for our GraphQL API and how to take advantage of 3rd party services like Auth0 for handling authentication and authorization in our GraphQL app.
Graphene is currently the most popular framework for building a GraphQL in Python and it’s also an obvious choice for adding a GraphQL layer to Django applications. Over the course of a year, we successfully built an API with about 50 queries and over 100 mutations on top of existing Django project (Saleor), but we also learned some hard lessons and had to overcome several shortcomings of the framework along the way.
In this talk, I’d like to share some practical tips to overcome the most common problems that a Django developer might face when building an optimized and maintainable API with Graphene, such as: - using useful abstractions to build queries and mutations faster - optimizing database queries in a graph - structuring a large Graphene project - unified error handling
I’d also like to bring up a few limitations of the framework that we discovered as we were working on the project and then end the talk with the most important benefits that adoption of GraphQL brings to modern web applications development - both for the backend and frontend.
BigQuery ML - Machine learning at scale using SQLMárton Kodok
With BigQuery ML, you can build machine learning models without leaving the data warehouse environment and training it on massive datasets. We are going to demonstrate how to build, train, eval and predict, your own scalable machine learning models using standard SQL language in Google BigQuery.
We will see how can we use CREATE MODEL sql syntax to build different models such as:
Linear regression
Multiclass logistic regression for classification
K-means clustering
Import TensorFlow models for prediction in BigQuery
We will see how we can apply these models on tabular data in retail and marketing use cases.
Models are trained and accessed in BigQuery using SQL — a language data analysts know. This enables business decision making through predictive analytics across the organization without leaving the query editor.
GraphQL is query language for APIs, but what are the advantages and how would one implement such in their microservices/APIs. In this session, I will go through the basics of GraphQL, different aspects of GraphQL and architecture of such APIs. How 4 different ways we can implement GraphQL for a Springboot microservice/API.
GraphQL and its schema as a universal layer for database accessConnected Data World
GraphQL is a query language mostly used to streamline access to REST APIs. It is seeing tremendous growth and adoption, in organizations like Airbnb, Coursera, Docker, GitHub, Twitter, Uber, and Facebook, where it was invented.
As REST APIs are proliferating, the promise of accessing them all through a single query language and hub, which is what GraphQL and GraphQL server implementations bring, is alluring.
A significant recent addition to GraphQL was SDL, its schema definition language. SDL enables developers to define a schema governing interaction with the back-end that GraphQL servers can then implement and enforce.
Prisma is a productized version of the data layer leveraging GraphQL to access any database. Prisma works with MySQL, Postgres, and MongoDB, and is adding to this list.
Prisma sees the GraphQL community really coming together around the idea of schema-first development, and wants to use GraphQL SDL as the foundation for all interfaces between systems.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
3. #MMAMD
Agenda
• What is GraphQL ?
• Why GraphQL ?
• GraphQL Vs Rest
• Current state of GraphQL in Magento 2
• Developer Tools to access GraphQL
• Queries
• Mutations
• GraphQL Module Structure
4. #MMAMD
What is GraphQL?
● GraphQL is a new API standard that provides a more efficient, powerful and
flexible alternative to REST and SOAP Web APIs.
● GraphQL was developed and open-sourced by Facebook in 2015 and is now
maintained by a large community of companies and individuals from all over the
world.
● GraphQL enables declarative data fetching where a client can specify exactly
what data it needs from an API. Instead of multiple endpoints that return fixed
data structures, a GraphQL server only exposes a single endpoint and
responds with precisely the data a client asked for.
● GraphQL is a query language for APIs - not database. It’s a replacement of
REST.
5. #MMAMD
Why GraphQL?
There are mainly three reason why PWA choose GraphQL over REST.
1. With the increase of mobile usage and low internet speed in some of the mobile
devices, it is a need of powerful query language which can minimize the data
that needs to transfer over network.
1. No more client specific endpoints. With GraphQL, each client can access
precisely the data it needs.
1. Faster Frontend Development.
6. #MMAMD
GraphQL Vs Rest
Single endpoint to gather multiple data. Gather Data using multiple endpoint.
No More Over and Under Fetching of
Data
Over and Under Fetching of Data
Rapid Product Iterations on the
Frontend
Due to rigid structure of Rest endpoint
every time app ui change we need to
adjust the endpoint that stop rapid
development.
No more outdated docs When structure changed, docs become
outdated.
7. #MMAMD
State of GraphQL in Magento 2
● Support All products types
● Supports PayPal, Braintree, and Authorize.Net payment methods.
● Supports Products, Customer, Categories, CMS, Coupons, Shopping cart,
Checkout, My Account etc.
● Some of the In Progress GraphQL Coverages which will available in 2.4 version
are following
○ ReOrders
○ Order history
○ Gift wrapping and message
○ Saved Payment methods
8. #MMAMD
Developer Tools to Access GraphQL
● There are many GraphQL client available are ChromeiQL, Altair, Postman etc.
● You can use any of the client to access GraphQL.
● But most handy and feature reach GraphQL client is Google Chrome, Altair
GraphQL Client.
● Demo of Altair GraphQL Client.
9. #MMAMD
GraphQL Queries
● Queries are use to retrieve a data from database same as GET method in
REST Api.
● GraphQL queries perform read operation. This includes wide variety of
information which include following
○ Product data
○ Customer data
○ Shopping cart data
○ Store configuration data etc
10. #MMAMD
GraphQL Query Structure
● The optional keyword query. If no keyword specify the processor assumes the
request is a query.
● The operation name. Optional if you are not using variables in your query.
● The query name.
● The Arguments.
● Fields.
12. #MMAMD
GraphQL Mutations
● While Queries are use to retrieve a data, mutations are use to change the data.
● Mutations are use to Create, Update and Delete operations similar to REST
POST, PUT and DELETE.
13. #MMAMD
GraphQL Mutations Structure
● The keyword mutation
● The operation name. Optional if you are not using variables in your query.
● The mutation name
● The Arguments.
● Fields.
16. #MMAMD
GraphQL Module’s schema.graphqls
● schema.graphqls: A GraphQL module’s schema.graphqls file defines how the
attributes defined in the module can be used in GraphQL queries and
mutations.
● It is located under app/code/Vendor/Module/etc directory.
○ It’s define structure of the query
○ Define which attributes are use for input and output.
○ Points to resolver class.
○ Serves as the source for displaying the schema in a GraphQL browser.
○ Defines which objects are cached.
17. #MMAMD
GraphQL Module’s Resolver Class
● A resolver performs GraphQL request processing. In general, it is responsible
for constructing a query, fetching data and performing any calculations, then
transforming the fetched and calculated data into a GraphQL array format.
Finally, it returns the results wrapped by a callable function.
● It’s located under app/code/Vendor/Module/Model/Resolver directory.