Learn Ballerina

Ballerina is a simple programming language whose syntax and platform address the hard problems of integration. Ballerina 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.

Installation

Getting Started

Getting Started includes instructions on how to download Ballerina and install its tools. It also includes system requirements and uninstall instructions.

Learning Ballerina

Quick Tour

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, IDEs, and the Ballerina Composer

Tools, IDEs, and the Ballerina Composer overviews the editing tools for code and diagrams. This includes language servers, editors, IDE, and a graphical visualization tool called the Ballerina Composer.

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 packages 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 packages 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 Packages

How to Publish Ballerina Packages provides settings and commands you need to share your local packages 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 package these customizations for use by others.

Reference Documentation

Package and API Documentation

The API Documentation describes the native functions in Ballerina that you can use in your programs.

Language Specification

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.

FAQ

Frequently Asked Questions about Ballerina.

Events

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

  1. Conceiving Ballerina
  2. How Ballerina is Different From Other Programming Languages
  3. Ballerina Dances Onto the Programming Stage
  4. Ballerina Making Sequence Diagrams Work
  5. Ballerina Thinking About Names
  6. A Year of Ballerina
  7. Integration Versus Integration Programming
  8. Ballerina Compiler Design
  9. Ballerina Runtime Evolution
  10. All You Need to Know About Native Client Connectors
  11. Plug Custom Native Functions Into Ballerina
  12. Identifier Literal Support in Ballerina
  13. Any Type Support in Ballerina
  14. Data Integration with Ballerina
  15. Ballerina SQL Connector - Connecting to a Database
  16. Ballerina SQL Connector - Performing Database Operations
  17. Introduction to Data Integration with Ballerina
  18. Write Integration Tests for Ballerina Using TestContainers
  19. Connect with Kafka Brokers Using Ballerina
  20. Ballerina: Concurrency Done Right!
  21. Ballerina Microservices Programming Language: Introducing the Latest Release and "Ballerina Central"
  22. Generate Kubernetes YAML Right From Your App Code