SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
[ApacheCon NA 2019] Re-inventing Middleware in a Programming Language
In this slide deck, Paul explores how the Ballerina programming language's type-system, security model, syntax, and core concepts take into account network endpoints, payloads and the semantics of network distributed applications.
In this slide deck, Paul explores how the Ballerina programming language's type-system, security model, syntax, and core concepts take into account network endpoints, payloads and the semantics of network distributed applications.
[ApacheCon NA 2019] Re-inventing Middleware in a Programming Language
1.
Re-inventing middleware in a programming language
September 2019
Dr. Paul Fremantle, CTO and Co-Founder, WSO2
@pzfreo #ballerinalang
2.
(Almost)
Every programmer is
using and/or creating
APIs
3.
Existing languages treat the
network as simply I/O
Ballerina treats APIs, listeners,
endpoints, network types as first
class entities
4.
Ballerina is a modern, compiled, type safe,
concurrent programming language
Open Source implementations,
Apache Licensed
Open Specification,
Creative Commons Licensed
9.
caller hello
POST (status)
response
twitter
tweet (status)
response
10.
○ Built in taint analysis
○ Built in API Gateway (JWT and OAuth)
○ Research on embedding SPIFFE into the language
○ First-class integration with Istio / Envoy
More info here:
https://github.com/prabath/ballerina-security
12.
○ A type defined by union of two or more other types
float | string v1 = "John";
float | string v2 = 457.68;
float | string
0.51
1.01
457.68
-11.0
“John”
“name”
“”
“bal”
// The return type of 'post' is a union of 'http:Response' and 'error'
http:Response | error response = orderEP -> post("/create", reqPayload)
14.
// Simple XML literal
xml x1 = xml`<name>Paul Fremantle</name>`;
// XML with namespaces
xmlns "http://wso2.com" as ns0;
xml x2 = xml `<name id="123" status="married">
<ns0:fname>Paul</ns0:fname>
<ns0:lname>Fremantle</ns0:lname>
</name>`;
// XML literal with interpolation
string lastName = "Fremantle";
xml x3 = xml`<lname>${lastName}</lname>`;
// Concat XML values
xml x4 = x1 + x2 + x3;
24.
$ ballerina openapi gen-contract hello -i demo.bal
Note: This is an Experimental tool shipped under
ballerina hence this will only support limited set
of functionality.
Successfully generated the ballerina contract at
location
/Users/paul/10demo/hello.openapi.yaml
30.
○ Join the Ballerina Hackathon
○ Write your first Ballerina program
○ Help us bridge Ballerina with your Apache project
○ Come to https://ballerina.io
○ Join the slack channel and/or ballerina-dev mailing list
○ Create a package
○ A connector to your Apache project!
○ Create issues
○ On the spec or implementation
○ If you have compiler skills, submit PRs on nBallerina or jBallerina
31.
Homepage https://ballerina.io/
Downloads https://ballerina.io/downloads/
Ballerina By Example https://ballerina.io/learn/by-example/
Github https://github.com/ballerina-platform/ballerina-lang
0 likes
Be the first to like this
Views
Total views
5,522
On SlideShare
0
From Embeds
0
Number of Embeds
0
You have now unlocked unlimited access to 20M+ documents!
Unlimited Reading
Learn faster and smarter from top experts
Unlimited Downloading
Download to take your learnings offline and on the go
You also get free access to Scribd!
Instant access to millions of ebooks, audiobooks, magazines, podcasts and more.
Read and listen offline with any device.
Free access to premium services like Tuneln, Mubi and more.