Ballerina is a simple programming language whose syntax and platform address the hard problems of integration. It is a general purpose, concurrent, transactional, statically and strongly typed programming language with both textual and graphical syntaxes. Its specialization is integration - it brings fundamental concepts, ideas and tools of distributed system integration into the language and offers a type safe, concurrent environment to implement such applications. These include distributed transactions, reliable messaging, stream processing, workflows and container management platforms.
Getting Started includes instructions on how to download Ballerina and install its tools. It also includes system requirements and uninstall instructions.
The Quick Tour is the fastest way to try Ballerina. Take this dancer for a twirl and a spin!
Ballerina by Example
Ballerina by Example teaches you the Ballerina language incrementally with commented examples that cover every nuance of the syntax.
Ballerina by Guide
Ballerina by Guide are long form examples that showcase how to build different types of integrations using a complete development lifecycle including IDE configuration, packages, dependencies, coding, unit testing, deployment, and observability.
Tools and IDEs
The Tools and IDEs section introduces the language servers, editors, IDEs, and graphical visualization tools that are supported by Ballerina.
How to Structure Ballerina Code
How to Structure Ballerina Code demonstrates the development of a Ballerina project and shows how to use Ballerina to fetch, build, create, version, search, and install Ballerina modules with repositories that are local and remote.
How to Test Ballerina Code
How to Test Ballerina Code provides information on the set of building blocks used to help write tests and a set of tools used for testing.
How to Document Ballerina Code
How to Document Ballerina Code provides guidelines on documenting your Ballerina programs and modules in order to generate API documentation.
How to Write Secure Ballerina Services
How to Write Secure Ballerina Services provides guidelines on writing secure Ballerina services, while demonstrating different security features and controls available within Ballerina.
How to Publish Ballerina Modules
How to Publish Ballerina Modules provides settings and commands you need to share your local modules with the Ballerina community.
How to Run and Deploy Ballerina Services
How to Deploy and Run Ballerina Services provides an overview of how to configure your runtime services and to generate deployment artifacts for various targets including Docker and Kubernetes.
How to Observe Ballerina Services
How to Observe Ballerina Services instructs you on how to use logging, metrics, and tracing to observe Ballerina services.
How to Extend Ballerina
How to Extend Ballerina provides instructions on how developers and third parties can extend the behavior of Ballerina and collate these customizations for use by others.
Module and API Documentation
The API Documentation describes the native functions in Ballerina that you can use in your programs.
The Language Specification is the document that defines Ballerina programming language and will be useful to those who wish to understand, evaluate, or start using the language.
Ballerina Streaming Guide
The Ballerina Streaming Guide provides detailed information on Ballerina Streaming concepts and its capabilities. This includes Ballerina streaming language syntax, explanations, and sample queries as well.
Ballerina Style Guide
The Ballerina Style Guide provides guidelines to maintain a standard coding style among the Ballerina community.
Frequently Asked Questions about Ballerina.
The Events page consists of upcoming webinars, meetups, and conferences about Ballerina.
Refer to the Past Events page to view videos and slides from conferences and webinars.
Articles and Videos
- Conceiving Ballerina
- How Ballerina is Different From Other Programming Languages
- Ballerina Dances Onto the Programming Stage
- Ballerina Making Sequence Diagrams Work
- Ballerina Thinking About Names
- A Year of Ballerina
- Integration Versus Integration Programming
- Ballerina Compiler Design
- Ballerina Runtime Evolution
- All You Need to Know About Native Client Connectors
- Plug Custom Native Functions Into Ballerina
- Identifier Literal Support in Ballerina
- Any Type Support in Ballerina
- Data Integration with Ballerina
- Ballerina SQL Connector - Connecting to a Database
- Ballerina SQL Connector - Performing Database Operations
- Introduction to Data Integration with Ballerina
- Write Integration Tests for Ballerina Using TestContainers
- Connect with Kafka Brokers Using Ballerina
- Ballerina: Concurrency Done Right!
- Ballerina Microservices Programming Language: Introducing the Latest Release and "Ballerina Central"
- Generate Kubernetes YAML Right From Your App Code