Ballerina

Join the Ballerina Track
Ballerina is a cloud-native programming language that incorporates fundamental concepts of distributed system integration into the language and offers a type safe, concurrent environment to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows.
Join the Ballerina Track
Track mentors

5 Mentors

Our mentors are friendly, experienced Ballerina developers who will help teach you new techniques and tricks.
Track students

261 Students

Join hundreds of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

9 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About Ballerina

import ballerina/http;
import ballerina/io;

service hello on new http:Listener(9090) {
  resource function sayHello(http:Caller caller, http:Request request) {
        http:Response response = new;
        response.setTextPayload("Hello Ballerina!");
        var responseResult = caller->respond(response);
        if (responseResult is error) {
            io:println("error responding back to client.");
        }
  }
}

Ballerina is a compiled, transactional, statically and strongly typed programming language with textual and graphical syntaxes. Ballerina incorporates fundamental concepts of distributed system integration into the language and offers a type-safe, concurrent environment to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows.

Ballerina is a language designed to be integration simple. Based around the interactions of sequence diagrams, Ballerina has built-in support for common integration patterns and connectors, including distributed transactions, compensation and circuit breakers. With first-class support for JSON and XML, Ballerina makes it simple and effective to build robust integration across network endpoints.

Join the Ballerina track

Exercism is a great website

What I like about it is that I am able to solve the challenges in a TDD way working in a environment that I am familiar (my own PC not a browser IDE) and the cherry on the top of the cake is that I have access to code reviews.

Relaxed. Encouraging. Supportive.

Meet the Ballerina Track mentors

Once you join the Ballerina language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Maryam Ziyad

Maryam Ziyad https://medium.com/@maryamzi

Enjoying working on/with Ballerina and writing about it
Avatar of Manuri Perera

Manuri Perera https://medium.com/@Manuri

I am an Engineer at WSO2. Currently working in the Ballerina team. Mainly contributing to Ballerina data client area.
Avatar of Hemika Kodikara

Hemika Kodikara https://medium.com/@hemika.kodikara

I am an Engineer at WSO2 working for the cloud native capabilities of Ballerina.
Avatar of Lynn Langit

Lynn Langit https://github.com/lynnlangit

As a Cloud Architect and Developer, I find the Ballerina language to be useful for many enterprise integration scenarios.
Avatar of Chanaka Lakmal

Chanaka Lakmal https://github.com/ldclakmal

As a contributor of Ballerina language, I find Ballerina makes it easy to write microservices that integrate APIs while maintaining reliability, scalability, observability, and security.
Fun. Challenging. Interesting

Community-sourced Ballerina exercises

These are a few of the 9 exercises on the Ballerina track. You can see all the exercises here.

Echo Service
easy
http
services
strings
Calculator Service
easy
json
services
http
types
Greeting Service
easy
http
services
strings
Service Invocation
easy
http
services
strings
log
Legacy Service Client
easy
http
match
error handling
union type
Hello World
easy
strings

Get started with the Ballerina track. As with everything on Exercism, it's 100% free!

Join the Ballerina Track