@bibryam
Bilgin Ibryam
Product Manager, Diagrid
A 10x Developer Framework
for Any Language
Slide 2
Slide 2 text
Bilgin Ibryam
2
● Product Manager at Diagrid
● Former Architect at Red Hat
● Former Committer at Apache Camel
● Blogger and Author
○ Camel Design Patterns
○ Kubernetes Patterns
@bibryam https://k8spatterns.io
Slide 3
Slide 3 text
What is a “10x developer”, anyway?
3
Someone who is 10 times better
than the worst developer?
Someone who made their team or
company 10 times better?
Small org Large org
Slide 4
Slide 4 text
Development benefits
4
Slide 5
Slide 5 text
Cart
E-commerce app
Email Payment
Inventory
Checkout
Frontend
Notify
Internet
State
Management
Queue
Shipping
Oh no, this
coordination logic
requires stateful
orchestration!
How do I send
messages to many
applications?
How do
applications
discover and call
each other?
How to I handle
failed calls and
perform retries?
Developer challenges
How do I connect to
external systems?
Slide 6
Slide 6 text
HTTP API gRPC API
Microservices written in
Any cloud or edge infrastructure
Application code
Any code or framework…
Microservices written in
virtual or
physical machines
Dapr architecture
Service-to
-service
invocation
State
management
Publish
and
subscribe
Resource
bindings
and triggers
Actors Observability Secrets Configuration Distributed
Lock
Slide 7
Slide 7 text
7
Service invocation
S2S Features
● Pluggable service discovery
● End-to-end security with mTLS
● Transient failures recovery
● Observability with tracing and metrics
● Access Control with service identities
● Middleware pipeline components
Slide 8
Slide 8 text
8
Publish and subscribe
Pub/Sub features
● Broker-agnostic API using Cloud Events
● Message routing and filtering
● Retries and dead letter topics
● Bulk operations (Splitter/Aggregator)
● Message Time-to-Live (TTL)
● Scoping topics for added security
Slide 9
Slide 9 text
9
Output bindings
Connector features
● Keep your code free from libraries
● Handle retries and failure recovery
● Switch between bindings at runtime
Slide 10
Slide 10 text
10
Input bindings
Connector features
● Keep your code free from libraries
● Avoid connecting to and polling
● Ack, reject, route events
Slide 11
Slide 11 text
Dapr APIs
API proposals
● Document Store (5146)
● Offline APIs (4289)
● Database API (3354)
● Change Data Capture(?)
Slide 12
Slide 12 text
Operational benefits
12
Slide 13
Slide 13 text
Cart
E-commerce app
Email Payment
Inventory
Checkout
Frontend
RCM
D
Internet
State
Management
Queue
Shipping
How do I secure
access to data
layer?
How to trace all calls
end–to-end?
How do I rotate certs?
How to I handle failed
calls and perform retries?
Operational challenges
How can Devs start
coding locally before
cloud env is ready?
How to patch this CVE
quickly?
Slide 14
Slide 14 text
14
Dapr components
My App
● Over 100 components available
● Swappable connection configurations
● Kubernetes operator, Helm charts
State
Stores Firebase Cassandra
Redis
Azure
CosmosDB
AWS
DynamoDB
PubSub
Brokers Redis
AW
S
SQS
Azure
Service Bus
RabbitMQ
GCP
Pub/Sub
Bindings
& Triggers GCP
Storage
AWS
S3 Kafka
Azure
Storage Twilio
Secret
Stores AWS
Secrets Manager
Azure
KeyVault
GCP
Secret Manager
HashiCorp
Vault
Kubernetes
Secret
Observability
Prometheus AppInsights Jaeger
Zipkin
Configuration
Distributed
Lock
Redis
Redis
Slide 15
Slide 15 text
15
End-to-end security
Security features
● In-transit encryption mTLS
● App to/from sidecar authentication
● OAuth2 authentication/authorization
● API scoping
Slide 16
Slide 16 text
16
End-to-end resiliency
Resiliency features
● Retries, timeouts, circuit breaker
● Service invocation, components, actors
Cross-team and
cross-project reuse
Long-term alignment
with business goals
Architectural challenges
Slide 20
Slide 20 text
20
Architectural benefits
● Optionality and portability in multiple dimensions:
○ Polyglot
○ Multi-cloud
○ Architecture agnostic: monolith, microservice, function
● Simplifies long-term maintainability / upgradability
● Non-intrusive and extensible
● Open source: part of CNCF since 2021
Dapr drawbacks
● Mental complexity
● Additional network latency (1-2ms)
● Additional resource overhead
● Debugging and testing?
Slide 21
Slide 21 text
21
Dapr community momentum
21k
GitHub stars
5.6k
Discord
members
Contributing organizations include:
+1M
Docker Hub
monthly pulls
2.5k
Contributors
+300k
Unique docs
views/mo
+100
Components
3 year contributor growth
10/157
Largest
CNCF project
Slide 22
Slide 22 text
22
https://www.diagrid.io/blog/dapr-as-a-10x-platform
Day 0
Ensure consistency and
portability across the
organization
Day 2
Operate distributed
applications confidently
Day 1
Create distributed
applications faster
In summary
Slide 23
Slide 23 text
@bibryam
Thank You
https://k8spatterns.io
https://www.diagrid.io
https://dapr.io