SlideShare une entreprise Scribd logo
1  sur  107
Jose Nino
@junr03
Next Generation Client APIs
with Envoy Mobile
QCon London - March 2020
Some slides built in collaboration with: @goaway & @rebello95
InfoQ.com: News & Community Site
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
api-envoy/
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon London
www.qconlondon.com
Server
Networking
Networking
Client
@rebello95
Server
Networking
Networking
Client
@junr03
API
Server
Networking
Networking
Server
@junr03
Server
Networking
Server
Networking
Server
Networking
Server
Networking Server
Networking
Server
Networking
Server
Networking
Server
Networking
Service
Networking
Networking
Server
@junr03
API
Server
Networking
Service
Networking
Server
Networking
Service
Networking Service
Networking
Service
Networking
Server
Networking
Server
Networking
Server
Networking Server
Networking
Server
Networking
Server
Networking
Server
Networking Server
Networking
Server
Networking
Server
Networking
Server
Networking Service
Networking
Server
Networking
Networking
Server
Networking Server
Networking
Server
Networking
Service
Networking
Networking
Server
@junr03
API
Server
Networking
Service
Networking
Server
Networking
Service
Networking Service
Networking
Service
Networking
Server
Networking
Server
Networking
Server
Networking Server
Networking
Server
Networking
Server
Networking
Server
Networking Server
Networking
Server
Networking
Server
Networking
Server
Networking Service
Networking
Server
Networking
Networking
Server
Networking Server
Networking
Server
Networking
��
��
��
��
��
��
Jose Nino
@junr03
Infrastructure Engineer
~4 years @
Service
Networking
Networking
Server
@junr03
API
Server
Networking
Service
Networking
Server
Networking
Service
Networking Service
Networking
Service
Networking
Server
Networking
Server
Networking
Server
Networking Server
Networking
Server
Networking
Server
Networking
Server
Networking Server
Networking
Server
Networking
Server
Networking
Server
Networking Service
Networking
Server
Networking
Networking
Server
Networking Server
Networking
Server
Networking
��
��
��
��
��
��
Server
Networking
Networking
Client
@junr03
API
We recognized two important dimensions
in API management: what data we send
(shape), and how we send it (transport).
@junr03
~3 years in Server Networking
Server-side Interface Definition Language (IDL)
Service A
“server”
@junr03
#service_a.proto
service ServiceA {
rpc UpdateA(ARequest) returns (AResponse) {
option (http.http_options).path = "/service_a";
option (http.http_options).method = "POST";
}
}
Service B
“client”
● Network Proxy driven by Open-source
(OSS) community
● Common substrate for network behavior
What is ?
@junr03
Sidecar
Service B
“client”
Sidecar
Service A
“server”
Storage
EdgeMobile Client
Sidecar
Service B
Sidecar
Service A
3rd-party
Strongly-typed APIs and a Universal Network Primitive
@junr03
(circa early 2019)
The End
@junr03
Storage
EdgeMobile Client
Sidecar
Service B
Sidecar
Service A
3rd-party��
Strongly-typed APIs and a Universal Network Primitive
@junr03
Three 9s of reliability at the server-side is
meaningless if the user of a mobile client is only
able to complete the desired product flows a fraction
of the time.
What do we want from our Client APIs?
@junr03
Consistency ? ✓
Performance ? ✓
Extensibility ? ✓
Resilience ? ✓
Security ? ✓
Observability ? ✓
Three 9s of reliability at the server-side is meaningless if the user of a mobile
client is only able to complete the desired product flows a fraction of the time.
What do we want from our Client APIs?
@junr03
Storage
Edge
Sidecar
Service B
Sidecar
Service A
3rd-party
Clients as another node in the mesh
Mobile Client
@goaway @junr03
API
Next generation Client APIs with Envoy Mobile
Mobile Client
@junr03
API
��
We recognized two important dimensions
in API management: what data we send
(shape), and how we send it (transport).
~1 year in Client Networking
We recognized two important dimensions
in API management: what data we send
(shape), and how we send it (transport).
@junr03
API Shape
Early API workflow at Lyft
Tech spec
handwritten.swift
handwritten.kt
handwritten.py/.go
@rebello95
iOS
Server
{
“key_a”: “hello”
}
Android
{
“kye_a”: “hello”
}
Programming errors
@rebello95
iOS
Server
{
“key_a”: “hello”
}
Android
{
“kye_a”: “hello”
}
Programming errors
@rebello95
iOS
Server
{
“key_a”: “hello”
}
Android
{
“kye_a”: “hello”
}
Programming errors
@rebello95 @junr03
��
iOS
Server
{
“key_a”: “hello”
}
Android
{
“kye_a”: “hello”
}
Programming errors
@rebello95 @junr03
iOS
Server
{
“key_a”: “hello”
}
Android
{
“kye_a”: “hello”
}
if (android):
else:
Programming errors
@rebello95
● Handwritten code led to mistakes/typos
● No visibility into deserialization failures at compile time
Problems
@rebello95 @junr03
YAML schema integration
@rebello95
paths:
/foo:
post:
parameters:
- in: body
schema:
$ref: '#/definitions/FooRequest'
responses:
200:
schema:
$ref: '#/definitions/FooResponse'
YAML definitions
@rebello95
● Manual code generation for Android
● No integration on iOS
● No single source of truth
YAML results
@rebello95
Consistency
@rebello95 @junr03
We needed a source of truth that
provided guarantees about the shape of
any given API.
Envisioned workflow
Tech spec IDL repo
foo_api.swift
foo_api.kt
foo_api.py/.go
foo_api.proto
@rebello95
● Platform-neutral IDL for defining and serializing strongly-typed APIs.
● JSON support (migration)
● Already used server-side (consistency)
Why protobuf?
@rebello95 @junr03
IDL pipeline
/api/v1/foo.proto
Generators
+7 others
foo.go
foo.py
foo.kt
foo.swift
@rebello95
IDL pipeline
/api/v1/foo.proto
Generators
+7 others
foo.go
foo.py
foo.kt
foo.swift FooV1API library
foo-v1-api library
@rebello95
Using generated APIs in Swift
@rebello95
// Modules/FooV1API/FooAPI.swift
public struct FooRequest: Codable, Equatable { … }
public struct FooResponse: Codable, Equatable {
public let id: Int64
public let firstName: String
}
Generated models
@rebello95
// Modules/FooV1API/FooAPI.swift
import RxSwift
public protocol FooAPI {
func updateFoo(_ request: FooRequest)
-> Single<Result<FooResponse, FooAPIError>>
}
public struct FooClientAPI: FooAPI {
// Abstracted implementation
}
Generated APIs
@rebello95
// Modules/FooV1API/FooAPI.swift
import RxSwift
public protocol FooAPI {
func updateFoo(_ request: FooRequest)
-> Single<Result<FooResponse, FooAPIError>>
}
public struct FooClientAPI: FooAPI {
🌟 // Abstracted implementation 🌟 (hint hint wink wink!)
}
Generated APIs
@rebello95 @junr03
// Modules/FooV1APIMock/FooAPI.swift
open class FooMockAPI: FooAPI {
open lazy var mockUpdateFoo: (FooRequest)
-> Result<FooResponse, FooAPIError> = { … }
open func updateFoo(_ request: FooRequest)
-> Single<Result<FooResponse, FooAPIError>> { … }
}
Generated mocks
@rebello95
● Single source of truth for all APIs
● Consistent, generated code on all platforms
● Highly testable
● Underlying transport fully abstracted 🌟 565958
Results
@rebello95
Performance
@rebello95 @junr03
Experimenting with payload
encoding
Client
Service
JSON request
Existing system
JSON response
@rebello95
Client
Service
JSON request
Content-Type: json
Accept: x-protobuf,json
Content negotiation
Middleware
JSON > Protobuf
Protobuf request
Content-Type: x-protobuf
Protobuf response
Content-Type: x-protobuf
Middleware
No change
Protobuf response
Content-Type: x-protobuf
@rebello95
JSON
Protobuf
@rebello95
● 40%+ reduction in payload sizes
● Faster response times
● Higher success rates
● Transparent to engineers
Wins from protobuf
@rebello95
Three 9s of reliability at the server-side is meaningless if the user of a mobile
client is only able to complete the desired product flows a fraction of the time.
What do we want from our Client APIs?
@junr03
Consistency ✓ ✓
Performance ✓ ✓
Extensibility ? ✓
Resilience ? ✓
Security ? ✓
Observability ? ✓
Extensibility
@junr03
Using protobuf annotations to declare API
behavior
service Foo {
rpc GetFoo(FooRequest) returns (FooResponse) {
option (http.http_options).path = "/foo/receive";
option (http.http_options).method = "GET";
option (http.http_options).client_poll_ms = 5000;
option (http.http_options).gzip_enabled = true;
}
}
Declarative APIs
@rebello95 @junr03
Service
Envoy
URLSession
iOS
OkHTTP
Android
@rebello95
Three 9s of reliability at the server-side is meaningless if the user of a mobile
client is only able to complete the desired product flows a fraction of the time.
What do we want from our Client APIs?
@junr03
Consistency ✓ ✓
Performance ✓ ✓
Extensibility 🤔 ? ✓
Resilience ? ✓
Security ? ✓
Observability ? ✓
We recognized two important dimensions
in API management: what data we send
(shape), and how we send it (transport).
@junr03
API Transport
Service
Envoy
Library X
Client
@rebello95
Clients as another node in the mesh
Storage
Edge
Sidecar
Service B
Sidecar
Service A
3rd-party
Client
@goaway @junr03
Standardizing infrastructure
@goaway @junr03
Why is world domination transport standardization useful?
● Write once, deploy everywhere
● Common tooling for common problems
● Reduce cognitive load
@goaway @junr03
Envoy Mobile to the rescue!
● v0.1: proof-of-concept
● v0.2: laying the foundation
● v0.3: first production-ready release
@goaway @junr03
Envoy as a Library
@junr03
How did we turn a network proxy into a
networking library?
Build System: bazel
@goaway @junr03
● Cross-platform support
● Used by Envoy
//library/common:c_types
//library/kotlin:android_framework
//library/swift:ios_framework
Layered Architecture
//:ios_dist
//:android_dist
//library/common:main_interface
@goaway @junr03
//library/common/...
@envoy//source/...
Platform (iOS/Android) Bridge (C) Native (C++/Envoy)
How to run a process in an app?
picture of an engine (a very fast one)
@goaway @junr03
Threading contexts
Application Threads
Envoy Main Thread
Callback Threads
@goaway @junr03
Library Matrix
Platform (iOS/Android) Bridge (C types/bindings) Native (C++/Envoy)
Application Threads
Envoy Main Thread
Callback Threads
@goaway @junr03
Library Lifecycle - Running Envoy
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
@goaway @junr03
Platform (iOS/Android) Bridge (C types/bindings) Native (C++/Envoy)
Library Lifecycle - Running Envoy
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
EnvoyRunner Engine
@goaway @junr03
Platform (iOS/Android) Bridge (C types/bindings) Native (C++/Envoy)
Server Envoy
Envoy Main Thread
Worker Threads
Envoy
Dispatcher
Http Manager
Requests
@goaway @junr03
Platform (iOS/Android)
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
EnvoyRunner
Dispatcher
Http Manager
@goaway @junr03
Bridge (C types/bindings) Native (C++/Envoy)
Library Lifecycle - using Envoy Constructs
Platform (iOS/Android)
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
EnvoyRunner
Dispatcher
Http Manager
HttpStream
@goaway @junr03
Bridge (C types/bindings) Native (C++/Envoy)
Library Lifecycle - starting a stream
Library Lifecycle - dispatching a stream
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
EnvoyRunner
Dispatcher
Http Manager
HttpStream
@goaway @junr03
Platform (iOS/Android) Bridge (C types/bindings) Native (C++/Envoy)
Http
Manager
Http Filters
@junr03
L7 Filter
L7 FilterHttp
Filter
Dispatcher
● Foundational extension point
● Enact behavior
● Provide the guarantees we want!
Callbacks
Library Lifecycle - callbacks
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
EnvoyRunner
Dispatcher
Http Manager
HttpStream
@goaway @junr03
Platform (iOS/Android) Bridge (C types/bindings) Native (C++/Envoy)
Library Lifecycle - platform callbacks
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
EnvoyRunner
Dispatcher
Http Manager
HttpStream
Callbacks
Lambdas
Dispatcher
@goaway @junr03
Platform (iOS/Android) Bridge (C types/bindings) Native (C++/Envoy)
Platform (iOS/Android)
Overall View
Application Threads
Envoy Main Thread
Callback Threads
EnvoyEngine
EnvoyRunner
Dispatcher
Http Manager
HttpStream
Callbacks
Lambdas
Dispatcher
Canceled
@goaway @junr03
Bridge (C types/bindings) Native (C++/Envoy)
Canceled
Platform Code
let envoy = try EnvoyClientBuilder(domain:
"api.envoyproxy.io")
.addLogLevel(.warn)
.addStatsFlushSeconds(60)
.build()
val envoy = EnvoyClientBuilder(
Domain("api.envoyproxy.io"))
.addLogLevel(LogLevel.WARN)
.addStatsFlushSeconds(60)
...
.build()
@goaway @junr03
Build an Engine
let envoy = try EnvoyClientBuilder(domain:
"api.envoyproxy.io")
.addLogLevel(.warn)
.addStatsFlushSeconds(60)
.build()
@goaway @junr03
Build an Engine
let envoy = try EnvoyClientBuilder(domain:
"api.envoyproxy.io")
.addLogLevel(.warn)
.addStatsFlushSeconds(60)
.build()
@goaway @junr03
Build a Request
let request = RequestBuilder(path:
"/pb.api.v1.Foo/GetBar")
.addHeader(name: "x-custom-header", value: "foobar")
.build()
@goaway @junr03
Build a Request
let request = RequestBuilder(path:
"/pb.api.v1.Foo/GetBar")
.addHeader(name: "x-custom-header", value: "foobar")
.build()
@goaway @junr03
Build a Response Handler
let handler = ResponseHandler()
.onHeaders { headers, status, _ ->
...
}
.onData { data ->
// Deserialize message data here
}
...
@goaway @junr03
Build a Response Handler
let handler = ResponseHandler()
.onHeaders { headers, status, _ ->
// Product logic
}
.onData { data ->
// Product logic
}
...
@goaway @junr03
Three 9s of reliability at the server-side is meaningless if the user of a mobile
client is only able to complete the desired product flows a fraction of the time.
What do we want from our Client APIs?
@junr03
Consistency ✓ ✓
Performance ✓ ✓
Extensibility 🤔 ? ✓
Resilience ? ✓
Security ? ✓
Observability ? ✓
IDL pipeline
/api/v1/foo.proto
Generators
+7 others
foo.go
foo.py
foo.kt
foo.swift FooV1API library
foo-v1-api library
@goaway @junr03
NSUrl
OkHttp
IDL pipeline
/api/v1/foo.proto
Generators
+7 others
foo.go
foo.py
foo.kt
foo.swift FooV1API library
foo-v1-api library
Client
@goaway @junr03
Ecosystem
@junr03
Shape + Transport = Ecosystem!
Three 9s of reliability at the server-side is meaningless if the user of a mobile
client is only able to complete the desired product flows a fraction of the time.
What do we want from our Client APIs?
Consistency ✓ ✓
Performance ✓ ✓
Extensibility ? ✓
Resilience ? ✓
Security ? ✓
Observability ? ✓
@junr03
Extensibility
@junr03
Using protobuf annotations to declare API behavior
and Envoy Mobile to enact consistent behavior.
service Foo {
rpc GetFoo(FooRequest) returns (FooResponse) {
option (http.http_options).path = "/foo/receive";
option (http.http_options).method = "GET";
option (http.http_options).client_poll_ms = 5000;
option (http.http_options).gzip_enabled = true;
}
}
Declarative APIs
@rebello95
Service
Envoy
URLSession
iOS
OkHTTP
Android
@rebello95 @junr03
�� ��
��
Extensibility
@junr03
Using protobuf annotations to declare API behavior
and Envoy Mobile to enact consistent behavior.
Http
Manager
Http Filters
@junr03
L7 Filter
L7 FilterHttp
Filter
Dispatcher
● Foundational extension point
● Enact behavior
● Provide the guarantees we want!
Envoy filters
Compression Filter
gzip request
Mobile
Proxy
Compression Filter
Unzip payload
🥳
EdgeClient
@junr03
Advanced transport
@junr03
● Dynamic Forward Proxy ✅
● Compression 🚧
● Deferred Requests 🕒 (Resilience)
● OAuth 🕒 (Security)
● Request Signing 🕒 (Security)
● Network condition 🕒 (Resilience)
Deferred Requests
@junr03
Deferred
Request Filter
Mobile
Proxy
Client
❌ Service
❌
Deferred
Request Filter
Mobile
Proxy
Client
✅ Service
✅
🥳
��
��
Request Signing
@junr03
Client
Request Signature
Filter
sign request
Mobile
Proxy
Request Signature
Filter
Verify signature
Edge
🕵‍♀
Advanced transport
@junr03
● Dynamic Forward Proxy ✅
● Compression 🚧
● Deferred Requests 🕒 (Resilience)
● OAuth 🕒 (Security)
● Request Signing 🕒 (Security)
● Network condition 🕒 (Resilience)
Observability
@junr03
True end-to-end insight
Observability
ts(envoy_mobile.cluster.api.upstream_rq.count)
ts(envoy_edge.cluster.*.upstream_rq.count)
@goaway @junr03
Time-series Metrics
Metrics
Service
@goaway @junr03
Dashboards!
ts(envoy_edge...)
@goaway @junr03
ts(envoy_mobile...)
Three 9s of reliability at the server-side is meaningless if the user of a mobile
client is only able to complete the desired product flows a fraction of the time.
What do we want from our Client APIs?
@junr03
Consistency ✓ ✓
Extensibility ✓ ✓
Performance ✓ ✓
Resilience ✓ ✓
Security ✓ ✓
Observability ✓ ✓
Onwards!
● Additional functionality in filters
● Protocol Experimentation with QUIC
● OSS Code Generators: complete OSS ecosystem for model-based
APIs.
@junr03
Next Generation Client APIs
@junr03
Model-based APIs defined in a strongly-typed IDL
so platform engineers can iterate on behavior using
a common transport layer.
Alpha Beta Production Experiment @Lyft!
@goaway @junr03
envoy-mobile.github.io
@junr03
Join us!
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
api-envoy/

Contenu connexe

Tendances

OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelJosé Román Martín Gil
 
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...confluent
 
DataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thDataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thJordan Schuetz
 
API Design Principles Essential 
API Design Principles Essential API Design Principles Essential 
API Design Principles Essential Oracle Korea
 
OpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology OverviewOpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology OverviewJason Peng
 
Spring Cloud: Why? How? What?
Spring Cloud: Why? How? What?Spring Cloud: Why? How? What?
Spring Cloud: Why? How? What?Orkhan Gasimov
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - ObservabilityAraf Karsh Hamid
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20Phil Wilkins
 
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...WSO2
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017adamleff
 
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)Phil Wilkins
 
Api design and prototype
Api design and prototypeApi design and prototype
Api design and prototypeDonghuKIM2
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps PlatformLalatendu Mohanty
 
Fault Tolerance in Distributed Environment
Fault Tolerance in Distributed EnvironmentFault Tolerance in Distributed Environment
Fault Tolerance in Distributed EnvironmentOrkhan Gasimov
 
Architecting for now & the future with NGINX London April 19
Architecting for now & the future with NGINX London April 19Architecting for now & the future with NGINX London April 19
Architecting for now & the future with NGINX London April 19NGINX, Inc.
 
Microservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsMicroservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsRafael Benevides
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineDonghuKIM2
 

Tendances (20)

OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache CamelOpenSouthCode 2018 - Integrating your applications easily with Apache Camel
OpenSouthCode 2018 - Integrating your applications easily with Apache Camel
 
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
Lessons Learned Building a Connector Using Kafka Connect (Katherine Stanley &...
 
DataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24thDataWeave and Error Handling Meetup at SF Tower Sept 24th
DataWeave and Error Handling Meetup at SF Tower Sept 24th
 
API Design Principles Essential 
API Design Principles Essential API Design Principles Essential 
API Design Principles Essential 
 
OpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology OverviewOpenShift Taiwan Vol.1 Technology Overview
OpenShift Taiwan Vol.1 Technology Overview
 
Spring Cloud: Why? How? What?
Spring Cloud: Why? How? What?Spring Cloud: Why? How? What?
Spring Cloud: Why? How? What?
 
FICO Open Shift presentation
FICO Open Shift presentationFICO Open Shift presentation
FICO Open Shift presentation
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
Test Policy and Practices
Test Policy and PracticesTest Policy and Practices
Test Policy and Practices
 
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
gRPC, GraphQL, REST - Which API Tech to use - API Conference Berlin oct 20
 
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
 
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017Compliance Automation with InSpec - Chef NYC Meetup - April 2017
Compliance Automation with InSpec - Chef NYC Meetup - April 2017
 
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
 
PHP as a Service TDC2019
PHP as a Service TDC2019PHP as a Service TDC2019
PHP as a Service TDC2019
 
Api design and prototype
Api design and prototypeApi design and prototype
Api design and prototype
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps Platform
 
Fault Tolerance in Distributed Environment
Fault Tolerance in Distributed EnvironmentFault Tolerance in Distributed Environment
Fault Tolerance in Distributed Environment
 
Architecting for now & the future with NGINX London April 19
Architecting for now & the future with NGINX London April 19Architecting for now & the future with NGINX London April 19
Architecting for now & the future with NGINX London April 19
 
Microservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsMicroservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and Jenkins
 
Building microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipelineBuilding microservice for api with helidon and cicd pipeline
Building microservice for api with helidon and cicd pipeline
 

Similaire à Next Generation Client APIs in Envoy Mobile

GraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend DevsGraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend DevsSashko Stubailo
 
GraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsSashko Stubailo
 
Building A Mobile First API When You're Not Mobile First - Tyler Singletary
Building A Mobile First API When You're Not Mobile First - Tyler SingletaryBuilding A Mobile First API When You're Not Mobile First - Tyler Singletary
Building A Mobile First API When You're Not Mobile First - Tyler SingletaryProgrammableWeb
 
Building a Bank with Go
Building a Bank with GoBuilding a Bank with Go
Building a Bank with GoC4Media
 
GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?LaunchAny
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture StrategyOCTO Technology
 
Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...
Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...
Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...Intuit Developer
 
Mobile First (or maybe second) API Development
Mobile First (or maybe second) API DevelopmentMobile First (or maybe second) API Development
Mobile First (or maybe second) API DevelopmentTyler Singletary
 
Lets dance- Dutch Architecture Conference (LAC) 2018
Lets dance- Dutch Architecture Conference (LAC) 2018Lets dance- Dutch Architecture Conference (LAC) 2018
Lets dance- Dutch Architecture Conference (LAC) 2018Yenlo
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPIScott Triglia
 
Implementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPCImplementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPCTim Burks
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCC4Media
 
10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform Selection10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform SelectionJason Haygood
 
Z101666 best practices for delivering hybrid cloud capability with apis
Z101666 best practices for delivering hybrid cloud capability with apisZ101666 best practices for delivering hybrid cloud capability with apis
Z101666 best practices for delivering hybrid cloud capability with apisTeodoro Cipresso
 
Design - Start Your API Journey Today
Design - Start Your API Journey TodayDesign - Start Your API Journey Today
Design - Start Your API Journey TodayLaurenWendler
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019Bill Doerrfeld
 
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...CA Technologies
 
Austin API Summit 2018: Are REST APIs Still Relevant Today?
Austin API Summit 2018: Are REST APIs Still Relevant Today?Austin API Summit 2018: Are REST APIs Still Relevant Today?
Austin API Summit 2018: Are REST APIs Still Relevant Today?LaunchAny
 
Are REST APIs Still Relevant Today?
Are REST APIs Still Relevant Today?Are REST APIs Still Relevant Today?
Are REST APIs Still Relevant Today?Nordic APIs
 

Similaire à Next Generation Client APIs in Envoy Mobile (20)

GraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend DevsGraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend Devs
 
GraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer tools
 
Building A Mobile First API When You're Not Mobile First - Tyler Singletary
Building A Mobile First API When You're Not Mobile First - Tyler SingletaryBuilding A Mobile First API When You're Not Mobile First - Tyler Singletary
Building A Mobile First API When You're Not Mobile First - Tyler Singletary
 
Building a Bank with Go
Building a Bank with GoBuilding a Bank with Go
Building a Bank with Go
 
GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?GlueCon 2018: Are REST APIs Still Relevant Today?
GlueCon 2018: Are REST APIs Still Relevant Today?
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
 
Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...
Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...
Building the Next Generation of QuickBooks App Integrations, QuickBooks Conne...
 
Colt inter-provider SDN NNIs and APIs
Colt inter-provider SDN NNIs and APIsColt inter-provider SDN NNIs and APIs
Colt inter-provider SDN NNIs and APIs
 
Mobile First (or maybe second) API Development
Mobile First (or maybe second) API DevelopmentMobile First (or maybe second) API Development
Mobile First (or maybe second) API Development
 
Lets dance- Dutch Architecture Conference (LAC) 2018
Lets dance- Dutch Architecture Conference (LAC) 2018Lets dance- Dutch Architecture Conference (LAC) 2018
Lets dance- Dutch Architecture Conference (LAC) 2018
 
Crystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPICrystal clear service interfaces w/ Swagger/OpenAPI
Crystal clear service interfaces w/ Swagger/OpenAPI
 
Implementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPCImplementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPC
 
Generating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPCGenerating Unified APIs with Protocol Buffers and gRPC
Generating Unified APIs with Protocol Buffers and gRPC
 
10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform Selection10 Key Criteria for Mobile Platform Selection
10 Key Criteria for Mobile Platform Selection
 
Z101666 best practices for delivering hybrid cloud capability with apis
Z101666 best practices for delivering hybrid cloud capability with apisZ101666 best practices for delivering hybrid cloud capability with apis
Z101666 best practices for delivering hybrid cloud capability with apis
 
Design - Start Your API Journey Today
Design - Start Your API Journey TodayDesign - Start Your API Journey Today
Design - Start Your API Journey Today
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019
 
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
 
Austin API Summit 2018: Are REST APIs Still Relevant Today?
Austin API Summit 2018: Are REST APIs Still Relevant Today?Austin API Summit 2018: Are REST APIs Still Relevant Today?
Austin API Summit 2018: Are REST APIs Still Relevant Today?
 
Are REST APIs Still Relevant Today?
Are REST APIs Still Relevant Today?Are REST APIs Still Relevant Today?
Are REST APIs Still Relevant Today?
 

Plus de C4Media

Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsC4Media
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechC4Media
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/awaitC4Media
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaC4Media
 

Plus de C4Media (20)

Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in Adtech
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven Utopia
 

Dernier

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Dernier (20)

Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

Next Generation Client APIs in Envoy Mobile