Ballerina favicon

Ballerina
Open source, cloud-native programming language optimized for integration

What is Ballerina?

Ballerina is an open source programming language developed by WSO2 since 2016 and first released in February 2022. It is specifically designed to address integration challenges, filling the gap between restricted drag-and-drop tools and generic programming languages that lack built-in support for integration tasks.

The language offers cloud-native capabilities with network primitives that simplify writing and deploying services in cloud environments. It features flexible structural typing for static typing and service interface descriptions, along with type-safe, declarative processing of JSON, XML, and tabular data using language-integrated queries. Ballerina programs can be edited and viewed both textually and graphically as sequence diagrams and flowcharts, providing visual representation of code logic. The language includes built-in concurrency management with sequence diagrams and safety primitives, eliminating the complexity of asynchronous functions while ensuring reliability through explicit error handling and static types.

Features

  • Cloud Native: Network primitives in the language simplify writing services and running them in cloud environments
  • Flexibly Typed: Structural types with support for openness used for static typing and describing service interfaces
  • Data Oriented: Type-safe, declarative processing of JSON, XML, and tabular data with language-integrated queries
  • Graphical: Programs have both textual syntax and equivalent graphical form based on sequence diagrams
  • Concurrent: Easy and efficient concurrency with sequence diagrams and language-managed threads without asynchronous complexity
  • Reliable, Maintainable: Explicit error handling, static types, and concurrency safety with familiar, readable syntax

Use Cases

  • Building cloud-native integration services
  • Developing microservices applications
  • Creating API integrations and connectors
  • Processing JSON, XML, and tabular data
  • Visual programming with sequence diagrams
  • Implementing concurrent systems without asynchronous complexity
  • Developing maintainable integration solutions

Blogs:

Didn't find tool you were looking for?

Be as detailed as possible for better results