Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middleware as a Programming Language

105 views

Published on

Ballerina is a statically typed, concurrent programming language, focusing on network interaction and structured data. One of its key objectives is to make providing and consuming services easier by baking concepts such as listeners, services, and endpoints as inherently concurrent first-class language constructs. Another important aspect of the language is the sequence diagram based graphical view which shows the most fundamental aspect of the semantics of a network distributed application. Ballerina language is pragmatic and intended for commercial adoption and provides familiarity for users of Java, C#, and JavaScript. While it looks like Java and other popular languages in some ways, it is very different from those in fundamental ways.

In this deck, Sameera Jayasoma, discusses and demonstrates how Ballerina simplifies your microservices development. Also, it shows you how Ballerina is different, why it's different, and how those differences give Ballerina an unfair advantage when it comes to developing resilient, performant, and secure network services and applications.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middleware as a Programming Language

  1. 1. Sameera Jayasoma Architect - Ballerina Platform Senior Director at WSO2 Could Native Middleware as a programming Language WSO2 Integration Summit - San Francisco 2019 @sameerajayasoma
  2. 2. Everything is An Endpoint Functions APIs Data SaaS apps Legacy apps Devices
  3. 3. Bazillion SaaS services to use Everything you make is useful to someone else Need for agility
  4. 4. https://en.wikipedia.org/wiki/Middleware
  5. 5. Middleware is dead, Middleware is everywhere
  6. 6. Middleware is disappearing: - in to code - in to infrastructure
  7. 7. Makes Every Developer an Integration Developer.
  8. 8. ● It isn’t easy ● The challenges include ○ Compensation ○ Transactions ○ Events ○ Circuit breakers ○ Discovery ○ Protocol handling ○ Various message formats ● These are all hard problems
  9. 9. ● Many messages are exchanged between endpoints ● Typically schemas describe these messages ● Data binding converts these messages into types/values in programming languages ● Creates a lot of friction for application that exchange messages
  10. 10. ● Requires a lightweight thread implementation to maximize the usage of computing resources ● Software unit of concurrency (thread) vs domain’s unit of concurrency (user, transaction, interaction) ● Inefficient to match the scale of domain’s unit of concurrency with kernel threads.
  11. 11. https://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html
  12. 12. Microservices with BallerinaCould Native Middleware as a programming Language
  13. 13. ● Works for Mort, Elvis and Einstein ● Familiar ● Pragmatic ○ not a research language ● Readability ● Design language together with platform
  14. 14. Demo
  15. 15. Hello World
  16. 16. caller hello GET Hello World
  17. 17. Annotations
  18. 18. caller hello POST (name) Hello, name!
  19. 19. caller hello POST (status) response twitter tweet (status) response
  20. 20. Based on sequence diagrams
  21. 21. Ballerina Platform
  22. 22. ● Collection of tools that helps you to develop, build, test, run and deploy programs written in Ballerina. ○ A language specification ○ Compiler and runtime ○ A set of standard libraries ○ Ballerina tool — the build tool++ ○ A centralized module management architecture ○ LSP implementation, IDE plugins ○ and many more…
  23. 23. Batteries Included
  24. 24. ○ Test ○ Documentation ○ Swagger tooling ○ gRPC tooling ○ Secret encryption ○ Docker / Kubernetes integration ○ Istio integration
  25. 25. Ballerina fits into your ecosystem
  26. 26. Serverless
  27. 27. Observability
  28. 28. Continuous Integration
  29. 29. https://ballerina.io/learn/by-example/
  30. 30. https://github.com/ballerina-platform/ballerina-spec
  31. 31. ● Ballerina is an attempt to build a modern application development programming language ○ For a future with lots of network endpoints ● Abstractions for providing and consuming services ● Type system is designed to make network data processing easier ● Framework to encourage more secure code ● Fully open source and developed openly
  32. 32. Learn more Open source Get support http://ballerina.io Stack Overflow #ballerina tag Contact me ;-) sameera@wso2.com @sameerajayasoma

×