9 Hasura Enterprise API Architecture
Resources
Apigee + Hasura:
Data APIs at Enterprise Scale
- External APIs (Apigee)
- Data APIs (Hasura)
REST
GraphQL
QoS
Data federation tasks
- Developer Portal
- Security
API misconfigurations
Bot attacks (Sense)
Security
BOLA (Broken Object Level Authorization)
model-based AuthZ
- API monetization, metering, and time to revenue
KPI - 1, Productivity (development cost)
(frontend developer experience and productivity
- results in faster Time to revenue
- Development Velocity
- (Design time) Governance
- (NFRs) Scalability, Security
Schema generation and real-time subscriptions
API generation capabilities
- API Gateway => manage Traffic (/routing), apply Security policies, and implement additional features specific to your API strategy
Hasura behind the API gateway
Hasura integrates with various 1. data sources, such as databases, 2. microservices, or 3. external APIs, to aggregate and compose the necessary data.
- Load balancing / reverse proxy(nginx-like use cases)
TLS termination
Sandbox
API design (Open API specification)
Partner on-boarding
- API Analytics
OAuth2, OIDC, JWT
API Product
REST
Different HTTP endpoints for different resources.
Different API calls to different URLs to fetch data
GraphQL
"single URL endpoint" that returns data based on the query.
Query is the "shape" of the final JSON data required.
schema => graph data model
Less dependency on API Developers
Subscription
Additional as compare to the REST
websocket
A GraphQL subscription is a subscription query string sent to a websocket endpoint. And whenever data changes on the backend, new data is pushed over websockets from the server to the client.
Questions
- For Developers' consumption perspective, how to provide standardized format for R and CUD APIs (REST based)?
- Aggregation of data across different systems? via APIs
- Aggregation across targets 1. data sources, such as databases, 2. microservices, or 3. external APIs, to aggregate and compose the necessary data.
- Supergraph?
- Security ?
Value proposition
- TTM (Faster Development)
- Productivity gain
- Performance for data retrieval