Ballerina Reinvents Cloud Native Middleware as a Programming Language, Puts ESB on the Path to Extinction

Open source Ballerina 1.0 language radically simplifies how developers build and deploy cloud native distributed apps and services; ApacheCon North America 2019 session will feature Ballerina overview and demo

Mountain View, CA – September 10, 2019 – The growth of digital services, mobile apps, and connected devices is creating an explosion of endpoints—from APIs to events, data streams, microservices, serverless apps, and other digital assets. Developers today need a more modern and agile approach to connect to these endpoints than a traditional centralized enterprise service bus (ESB) can offer. Ballerina 1.0, now generally available, delivers on this by providing cloud-native middleware as a programming language for the first time. As a result, the new language from Ballerina, the open source project created and sponsored by WSO2, radically simplifies how developers will build and deploy cloud native distributed applications and services.

“Modern applications are effectively integrations of services, data, transactions and processes from a vast array of resources to deliver innovative, new services. But ESBs and other traditional integration approaches have failed to keep pace,” said Dr. Sanjiva Weerawarana, founder and leader of the Ballerina project. “The Ballerina programming language is facilitating a major evolutionary leap in the development of cloud native distributed applications that is tearing down the outdated barriers between app development and integration to enable greater agility, performance and resiliency. And it’s accelerating the ESB’s path to extinction in the process.”

Ballerina 1.0, which is available under the Apache License, is being announced in conjunction with ApacheCon North America 2019. Ballerina, an ApacheCon Gold Sponsor, will offer technical sessions and demos of the new Ballerina release at the event. WSO2 CTO Paul Fremantle will also hold a session on Tuesday, September 10 at 2:30 p.m., “Ballerina - Re-inventing Middleware in a Programming Language.” ApacheCon North America 2019 is being held September 9-12, 2019 at the Flamingo in Las Vegas, Nevada.

Ballerina for Modern, Cloud Native Programming

Ballerina is the first language based on the concept that modern application programming involves creating and consuming APIs. Modeled on the notion of sequence diagrams, Ballerina programs are self-documenting and fit cleanly into the patterns of microservices and cloud native development. Creating RESTful and gRPC APIs is concise, simple and clear. Early users report that developing APIs in Ballerina is more effective than other languages because the syntax is designed around services; endpoints; network types, such as JSON and ProtoBuf; and simple annotations automatically create deployments for Kubernetes, Docker and Istio. 

The Ballerina language has been architected to serve as the core of a language-centric platform for cloud native applications and microservices. It has all the general-purpose functionality expected of a modern programming language, but also introduces several unusual aspects that make it particularly suitable for programming and consuming APIs. These include:

  • Language constructs specifically for consuming and providing network services.
  • Abstractions and syntax for concurrency and network interaction that closely correspond with sequence diagrams—enabling a bidirectional mapping for any Ballerina source code between its textual representation and its graphical representation as a sequence diagram.
  • A structural type system that is more flexible and allows for looser coupling than traditional statically typed languages—particularly useful when combining data from multiple, independently-designed systems.

Tackling the Cloud Native Shortcomings of ESBs

Existing ESBs have significant shortcomings in meeting the needs of modern app development and integration, including promoting the bottleneck of centralized development, poor fit with agile development, and underpowered configuration languages that result in a poor reputation with developers. Unlike ESBs and business process workflow tools, Ballerina is designed to fit into a modern development lifecycle—working properly with continuous integration and continuous delivery (CI/CD) tools, such as Jenkins, Travis and Codefresh; observability tools, such as Prometheus, Zipkin and Honeycomb; and cloud orchestration systems like Kubernetes. And unlike an ESB configuration language, Ballerina is a full programming language, so developers don’t run out of headroom when solving complex problems. 

The Ballerina language has been designed in conjunction with the Ballerina platform, which provides comprehensive support for modern software engineering processes and tool chains. The Ballerina platform includes:

  • A framework for package/module management, including dependency and version management
  • Ballerina Central, a public web service for sharing modules amongst developers
  • IDE tool plugins for Visual Studio Code and IntelliJ Idea supporting both textual and graphical development and debugging of Ballerina programs
  • A framework for documentation and testing of Ballerina programs
  • Built-in tooling for OpenAPI (Swagger) and Protocol Buffers v3/gRPC
  • A comprehensive standard library with support for many network protocols, data sources and data formats to ease adoption of the language

Version 1.0 of Ballerina adds several new features over earlier pre-production releases, including:

  • Support for a stable language specification: 2019R3
  • A new Ballerina compiler that targets the Java Virtual Machine (JVM)
  • Java interoperability, which allows users to call Java code from Ballerina
  • A major redesign of Ballerina developer tools

Ballerina 1.0 also includes experimental features that add constructs for other middleware functionality, such as event stream processing and distributed transactions. Workflow and reliable messaging capabilities are also in the pipeline.

Ballerina is a 100% open source project, and all parts of the project are developed openly at https://github.com/ballerina-platform.

Early Users Cite Ballerina Advantages 

“We were attracted by Ballerina’s cloud native features, such as automatic generation of Docker, Kubernetes and Helm artifacts, as well as its small footprint and faster boot times. It also capable of running as Lambda function (serverless) in AWS. Together, these capabilities have enabled us to easily run microservices in containers at scale and integrate with CI/CD tools with less effort,” stated Sri Harsha Pulleti, integration architect and senior manager, Motorola.

“Ballerina will enable fast, quality, 12-factor ready deployments out of the box. The strong annotation set is a great ‘batteries included’ approach that will have Devs and Ops collaborating from the start of development,” said Jim Kittle, an application architect at a leading university in the United States. Read about the implementation here.

"[With Ballerina] you can get sequence diagrams automatically. When things start to get complicated and you need to understand and socialize with the rest of your team what it is that you're building, these diagrams become very helpful," stated Christian Posta, field CTO, solo.io.

Availability and Support

Ballerina 1.0 is available today. As a fully open source implementation released under the Apache License 2.0, it does not carry any licensing fees and can be freely downloaded here. Users can find support through it’s growing open source community on Ballerina’s Slack Channel, Google Group, or Github. Additionally, resources such as the Quick Tour and Ballerina by Examples can be found here.

For organizations seeking to go beyond community support, commercial support is available from WSO2, the creator and lead sponsor of the Ballerina project. Provided under the WSO2 Platform license, this subscription includes security updates, performance enhancements, bug fixes, and 24x7 enterprise support. WSO2 also offers consulting services around Ballerina—including agility assessments, microservice transformation planning, training, development and deployment—as well as cloud hosting services. To learn more, visit https://wso2.com/subscription.

Sponsored and Developed by WSO2

WSO2 invested in the creation of Ballerina to address significant shortcomings that it saw in how middleware was evolving to play in the cloud native world. WSO2’s founder, Dr. Sanjiva Weerawarana, created the project in August 2016 and led its technical design in collaboration with James Clark, bringing in their decades of software development and enterprise integration experience. Sanjiva’s professional career has been focused on creating technology to facilitate large scale distributed systems, including co-creating WSDL, BPEL4WS and several domain-specific programming languages. James was a co-creator of XML and led the design of XPath, XSLT and RELAX NG. WSO2’s engineering effort for Ballerina has averaged more than 50 engineers during its three-plus years of development.

“Few technologies have the potential to reshape an entire market. We believe Ballerina is one of those technologies and that WSO2 will fundamentally disrupt the integration market using Ballerina as the basis of its future,” said Vinny Smith, executive chairman of the WSO2 board and founder of Toba Capital, WSO2’s majority stockholder. “Based on this vision, we have invested more than 150 person years of effort in bringing the first production release to market. And, knowing that it takes time to get a language established, we are making a long-term commitment to advancing both Ballerina technology innovations and building the community around this ground-breaking software.”

About WSO2

WSO2 is the world’s #1 open source integration vendor, helping digital-driven organizations become integration agile. WSO2 has been building enterprise middleware for more than 14 years. Now, a profitable business, the US- and Sri Lanka-based company has more than 600 customers in 75 countries and 650-plus employees in six countries. Customers choose us for WSO2 for its broad integrated platform approach to open source, and agile transformation methodology. The company’s hybrid platform for developing, reusing, running and managing integrations prevents lock-in through open source software that runs on-premises or in the cloud. Today, hundreds of leading brands and thousands of global projects execute 6 trillion transactions annually using WSO2 integration technologies. Visit https://wso2.com to learn more.

About Ballerina

Ballerina provides cloud native middleware as a simple-to-use programming language whose syntax and platform address the hard problems of integration presented by today’s distributed apps and services. Ballerina is a statically typed, concurrent programming language with both textual and graphical syntaxes. It brings fundamental concepts, ideas and tools of distributed system integration into the language. These include distributed transactions, reliable messaging, stream processing, workflows and container management platforms. Ballerina is an open source project under the Apache 2.0 license and is developed by the Ballerina community, sponsored by WSO2. To learn more, visit https://ballerina.io.

Trademarks and registered trademarks are the properties of their respective owners.