SlideShare a Scribd company logo
Cloud Native Programming Language that Makes it Easy
to Write Microservices that Integrate APIs
Anupama Pathirage
April 2019
Increasing demand is causing disaggregation
Everything is
An Endpoint
Functions
APIs
Data
SaaS apps
Legacy apps
Devices
Disaggregation leads to more endpoints
Integration in an increasingly disaggregated world
Transactions
Circuit Breaking
Protocols
Payloads
Events
Security
Workflow
Streams
Compensation
ESB, BPMN, EAI
Java / Spring
JavaScript / Node
The
Integration
Gap
ESB, BPMN, EAI
Java / Spring
JavaScript / Node
AGILE
INTEGRATION SIMPLE
Microservice with RESTful API
[WSO2 Integration Summit Nairobi 2019] Ballerina - Cloud Native Programming Language that Makes it Easy to Write Microservices that Integrate APIs
Network Abstractions
● Endpoints:
- Listener endpoints - For incoming network interactions
- Protocols
- HTTP/S
- HTTP2
- GRPC
- WebSocket
- JMS ..
- Client endpoints - For outgoing network interactions
- HTTP. WebSub, GRPC
- Database, FTP
- Twitter, Salesforce
Endpoints
● Service is a collection of resources where each resource is network
invokable via ingress endpoints
● Services must be attached to an endpoint to be invoked
Services and Resources
Endpoints and Services ...
Network-aware Type System
Basic types and other types
○ Simple types
○ (), boolean, int, float, decimal, string
○ Structured types
○ tuple, array, map, record, table, xml
○ Behavioral types
○ error, function, future, object, stream, typedesc
Basic types and other types
○ Other types
○ Unions
○ Optional
○ json
○ byte
○ anydata
○ any
Union types
○ Type defined by union of two or more other types
○ Remember, a type is name for a set of values
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)
XML
// Simple XML literal
xml x1 = xml`<name>Pol Katta</name>`;
// XML with namespaces
xmlns "http://wso2.com" as ns0;
xml x2 = xml `<name id="123" status="single">
<ns0:fname>Pol</ns0:fname>
<ns0:lname>Katta</ns0:lname>
</name>`;
// XML literal with interpolation
string lastName = "Katta";
xml x3 = xml`<lname>${lastName}</lname>`;
// Concat XML values
xml x4 = x1 + x2 + x3;
JSON
json is just a union - () | int | float | string | map<json> | json[]
// JSON object
json payload = { "orderdata" : { "id": 1, "name": "XYZ", "price": 2500 } };
//Access object values
json orderid = payload.orderdata.id;
//JSON arrays
json orders = {
"orderdata" : [
{ "id": 1, "name": "XYZ", "price": 2500 },
{ "id": 2, "name": "ABC", "price": 3000 }
]
};
Sequence Diagram
[WSO2 Integration Summit Nairobi 2019] Ballerina - Cloud Native Programming Language that Makes it Easy to Write Microservices that Integrate APIs
Microservice Deployment
● Ballerina natively understand Cloud Native platforms like Docker,
Kubernetes and Istio.
● Ballerina removes gap between developers and Ops.
● Ballerina support agile development to deployment and improve
productivity.
Takeaways
How to get involved
Learn more
Open source
Get support
http://ballerina.io
http://github.com/ballerina-platform/
Ballerina Dev Google Group
Ballerina Slack Channel
Stack Overflow #ballerina tag
THANK YOU

More Related Content

PPTX
Soap vs rest
PDF
Web Services Tutorial
PDF
PHP client - Mongo db User Group Pune
PDF
Web service introduction
PPTX
Mule parsing with json
PDF
Composite Source With Mule ESB
PDF
Rails 4 & server sent events
PDF
Soap vs rest
Web Services Tutorial
PHP client - Mongo db User Group Pune
Web service introduction
Mule parsing with json
Composite Source With Mule ESB
Rails 4 & server sent events

What's hot (20)

PPTX
Web Service
PPTX
Mule parsing with json part2
PPTX
Web services
PDF
Composing WSGI apps and spellchecking it all
PDF
PHP and Web Services
PDF
SOAP vs REST
PDF
MixIT 14 - How to choose your message broker
PDF
Server-Sent Events in Action
PPTX
Json to json transformation in mule
PPTX
Dataweave
PPTX
Webservice Testing
PPTX
Mule: JSON to Object
PPTX
Webservices Overview : XML RPC, SOAP and REST
PDF
Web Services
PPTX
Websocket vs SSE - Paris.js - 24/06/15
PDF
Building Applications Using Ajax
PPTX
Web services soap and rest by mandakini for TechGig
PPTX
Simple Object Access Protocol (SOAP)
PPTX
SOAP vs REST
PPTX
SOAP--Simple Object Access Protocol
Web Service
Mule parsing with json part2
Web services
Composing WSGI apps and spellchecking it all
PHP and Web Services
SOAP vs REST
MixIT 14 - How to choose your message broker
Server-Sent Events in Action
Json to json transformation in mule
Dataweave
Webservice Testing
Mule: JSON to Object
Webservices Overview : XML RPC, SOAP and REST
Web Services
Websocket vs SSE - Paris.js - 24/06/15
Building Applications Using Ajax
Web services soap and rest by mandakini for TechGig
Simple Object Access Protocol (SOAP)
SOAP vs REST
SOAP--Simple Object Access Protocol
Ad

Similar to [WSO2 Integration Summit Nairobi 2019] Ballerina - Cloud Native Programming Language that Makes it Easy to Write Microservices that Integrate APIs (20)

PDF
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
PDF
[WSO2 Integration Summit New York 2019] Ballerina - Cloud Native Middleware a...
PDF
Integration Microservices
PDF
[WSO2 Integration Summit Bern 2019] Ballerina — Cloud-native Middleware as a ...
PDF
[ApacheCon NA 2019] Re-inventing Middleware in a Programming Language
PDF
Ballerina: Cloud Native Programming Language
PDF
SoC Keynote:The State of the Art in Integration Technology
PDF
[WSO2 Summit Sydney 2019] Ballerina - Cloud Native Programming Language
PDF
[DeveloperWeek Austin 2019] Microservices in Practice with Ballerina, Kuberne...
PDF
Bridging Microservices, APIs and Integration
PPTX
API and Microservices Meetup - To Code or Low Code?
PDF
Ballerina- A programming language for the networked world
PDF
Ballerina- A programming language for the networked world
PDF
[WSO2 Summit EMEA 2020] Creating Smart Endpoints Using Integration Microservices
PDF
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
PDF
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
PDF
apidays LIVE Paris - Building APIs in a Cloud Native era by Nuwan Dias
PDF
Building APIs in a Cloud Native Era
PPTX
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
PDF
Introduction to ESB Architecture and Message Flow
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
[WSO2 Integration Summit New York 2019] Ballerina - Cloud Native Middleware a...
Integration Microservices
[WSO2 Integration Summit Bern 2019] Ballerina — Cloud-native Middleware as a ...
[ApacheCon NA 2019] Re-inventing Middleware in a Programming Language
Ballerina: Cloud Native Programming Language
SoC Keynote:The State of the Art in Integration Technology
[WSO2 Summit Sydney 2019] Ballerina - Cloud Native Programming Language
[DeveloperWeek Austin 2019] Microservices in Practice with Ballerina, Kuberne...
Bridging Microservices, APIs and Integration
API and Microservices Meetup - To Code or Low Code?
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked world
[WSO2 Summit EMEA 2020] Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit APAC 2020} Creating Smart Endpoints Using Integration Microservices
[WSO2 Summit Americas 2020] Creating Smart Endpoints Using Integration Micros...
apidays LIVE Paris - Building APIs in a Cloud Native era by Nuwan Dias
Building APIs in a Cloud Native Era
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
Introduction to ESB Architecture and Message Flow
Ad

More from WSO2 (20)

PDF
Demystifying CMS-0057-F - Compliance Made Seamless with WSO2
PDF
Quantum Threats Are Closer Than You Think – Act Now to Stay Secure
PDF
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
PDF
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
PDF
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
PDF
Platformless Modernization with Choreo.pdf
PDF
Application Modernization with Choreo for the BFSI Sector
PDF
Choreo - The AI-Native Internal Developer Platform as a Service: Overview
PDF
[Roundtable] Choreo - The AI-Native Internal Developer Platform as a Service
PPTX
WSO2Con 2025 - Building AI Applications in the Enterprise (Part 1)
PPTX
WSO2Con 2025 - Building Secure Business Customer and Partner Experience (B2B)...
PPTX
WSO2Con 2025 - Building Secure Customer Experience Apps
PPTX
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
PPTX
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
PPTX
WSO2Con 2025 - Unified Management of Ingress and Egress Across Multiple API G...
PPTX
WSO2Con 2025 - How an Internal Developer Platform Lets Developers Focus on Code
PPTX
WSO2Con 2025 - Architecting Cloud-Native Applications
PDF
Mastering Intelligent Digital Experiences with Platformless Modernization
PDF
Accelerate Enterprise Software Engineering with Platformless
PDF
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
Demystifying CMS-0057-F - Compliance Made Seamless with WSO2
Quantum Threats Are Closer Than You Think – Act Now to Stay Secure
Modern Platform Engineering with Choreo - The AI-Native Internal Developer Pl...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Build Smarter, Deliver Faster with Choreo - An AI Native Internal Developer P...
Platformless Modernization with Choreo.pdf
Application Modernization with Choreo for the BFSI Sector
Choreo - The AI-Native Internal Developer Platform as a Service: Overview
[Roundtable] Choreo - The AI-Native Internal Developer Platform as a Service
WSO2Con 2025 - Building AI Applications in the Enterprise (Part 1)
WSO2Con 2025 - Building Secure Business Customer and Partner Experience (B2B)...
WSO2Con 2025 - Building Secure Customer Experience Apps
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2Con 2025 - AI-Driven API Design, Development, and Consumption with Enhanc...
WSO2Con 2025 - Unified Management of Ingress and Egress Across Multiple API G...
WSO2Con 2025 - How an Internal Developer Platform Lets Developers Focus on Code
WSO2Con 2025 - Architecting Cloud-Native Applications
Mastering Intelligent Digital Experiences with Platformless Modernization
Accelerate Enterprise Software Engineering with Platformless
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation

Recently uploaded (20)

PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
Teaching material agriculture food technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Electronic commerce courselecture one. Pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
cuic standard and advanced reporting.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Spectral efficient network and resource selection model in 5G networks
Teaching material agriculture food technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Weekly Chronicles - August'25 Week I
20250228 LYD VKU AI Blended-Learning.pptx
Big Data Technologies - Introduction.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Understanding_Digital_Forensics_Presentation.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
MYSQL Presentation for SQL database connectivity
Electronic commerce courselecture one. Pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Machine learning based COVID-19 study performance prediction
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

[WSO2 Integration Summit Nairobi 2019] Ballerina - Cloud Native Programming Language that Makes it Easy to Write Microservices that Integrate APIs

  • 1. Cloud Native Programming Language that Makes it Easy to Write Microservices that Integrate APIs Anupama Pathirage April 2019
  • 2. Increasing demand is causing disaggregation
  • 3. Everything is An Endpoint Functions APIs Data SaaS apps Legacy apps Devices Disaggregation leads to more endpoints
  • 4. Integration in an increasingly disaggregated world Transactions Circuit Breaking Protocols Payloads Events Security Workflow Streams Compensation
  • 5. ESB, BPMN, EAI Java / Spring JavaScript / Node
  • 6. The Integration Gap ESB, BPMN, EAI Java / Spring JavaScript / Node
  • 11. ● Endpoints: - Listener endpoints - For incoming network interactions - Protocols - HTTP/S - HTTP2 - GRPC - WebSocket - JMS .. - Client endpoints - For outgoing network interactions - HTTP. WebSub, GRPC - Database, FTP - Twitter, Salesforce Endpoints
  • 12. ● Service is a collection of resources where each resource is network invokable via ingress endpoints ● Services must be attached to an endpoint to be invoked Services and Resources
  • 15. Basic types and other types ○ Simple types ○ (), boolean, int, float, decimal, string ○ Structured types ○ tuple, array, map, record, table, xml ○ Behavioral types ○ error, function, future, object, stream, typedesc
  • 16. Basic types and other types ○ Other types ○ Unions ○ Optional ○ json ○ byte ○ anydata ○ any
  • 17. Union types ○ Type defined by union of two or more other types ○ Remember, a type is name for a set of values 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)
  • 18. XML // Simple XML literal xml x1 = xml`<name>Pol Katta</name>`; // XML with namespaces xmlns "http://wso2.com" as ns0; xml x2 = xml `<name id="123" status="single"> <ns0:fname>Pol</ns0:fname> <ns0:lname>Katta</ns0:lname> </name>`; // XML literal with interpolation string lastName = "Katta"; xml x3 = xml`<lname>${lastName}</lname>`; // Concat XML values xml x4 = x1 + x2 + x3;
  • 19. JSON json is just a union - () | int | float | string | map<json> | json[] // JSON object json payload = { "orderdata" : { "id": 1, "name": "XYZ", "price": 2500 } }; //Access object values json orderid = payload.orderdata.id; //JSON arrays json orders = { "orderdata" : [ { "id": 1, "name": "XYZ", "price": 2500 }, { "id": 2, "name": "ABC", "price": 3000 } ] };
  • 23. ● Ballerina natively understand Cloud Native platforms like Docker, Kubernetes and Istio. ● Ballerina removes gap between developers and Ops. ● Ballerina support agile development to deployment and improve productivity. Takeaways
  • 24. How to get involved Learn more Open source Get support http://ballerina.io http://github.com/ballerina-platform/ Ballerina Dev Google Group Ballerina Slack Channel Stack Overflow #ballerina tag