Ballerina hackathon is an open invitation to all the KubeCon NA 2019 attendees to use their Ballerina skills with Kubernetes to complete a series of coding challenges and win amazing prizes.
- Overview
- Challenges
- Prizes
- Getting started
- Submission guidelines
- Judging
- Rules
- FAQ
- Hackathon policies
These coding challenges are all about having fun, learning a new programming language, mashing up microservices, and deploying them on Kubernetes. Here are some essential details about this hackathon.
-
Venue: KubeCon NA 2019
-
Start: Nov 19, 2019 10.00AM
-
End: Nov 21, 2019 12.00PM
-
Winners will be announced by Nov 21, 209 3.00 PM
The challenges are based on the “Hipster Shop: Cloud-Native Microservices Demo Application” developed by Google Cloud. It is a web-based e-commerce application with 10 microservices written in different programming languages. You can refer to the original README.md file to learn more about this application.
In this hackathon your task is to implement following microservices in Ballerina. We expect you to look at the original source code and rewrite the same logic in Ballerina. You can refer to the Getting started section for more details on how to complete these challenges.
-
The “currencyservice” microservice
- Language: Node.js
- Description: Converts one money amount to another currency. Uses real values fetched from European Central Bank. It's the highest QPS service.
-
The “adservice” microservice
- Language: Java
- Description: Provides text ads based on given context words.
-
The “productcatalogservice” microservice
- Language: Go
- Description: Provides the list of products from a JSON file and ability to search products and get individual products.
-
The “cartservice” microservice
- Language: C#
- Description: Stores the items in the user's shopping cart in Redis and retrieves it.
-
The “checkoutservice” microservice
- Language: Go
- Description: Retrieves user cart, prepares order and orchestrates the payment, shipping and the email notification.
There are 5 challenges in this Ballerina hackathon. You need to complete all 5 challenges to be eligible for a prize.
-
First Prize - Bose Quiet Comfort 35 wireless headphones II Star Wars: The Rise of Skywalker Edition
-
Second Prize - Echo Studio
-
The next best 10 submissions will receive $50 worth Amazon vouchers.
[TODO] Document eligibility criteria
Start with a GitHub Repository in your account. You can clone this repository to your workstation and then push it to your repository. If you directly fork this repository, you won't be able to make it private. It is up to you to keep this repo as a private repo during the hackathon.
-
Create a private GitHub repository in your personal account. Do not folk this repository if you want to keep your code private during the hackathon. An example repository name would be "ballerina-hackathon-kubecon-na-19"
-
Clone this repository to your machine and then push it your private Git repository.
Make sure that you've Docker and Kubernetes installed locally. We recommend you to use the pre-built container images of all the microservices that are available publicly, instead of building yourself.
[TODO]
For each microservice you write in Ballerina, you can follow the following steps.
-
Create a Ballerina project in the src/ directory.
ballerina new recommendationservice_ballerina
-
Move into the directory created for the project
cd recommendationservice_ballerina
-
Add a new Ballerina module
ballerina add recommendationservice
-
Remove the default content added. Generate the client/service stub and optionally a service/client template using the relevant .proto file
ballerina grpc --input <project_root>/pb/services/recommendationservice.proto --output src/recommendationservice --mode service
Ensure you specify the output path to point to the module created.
-
Once you’ve completed a service, update the setup.sh file, to use the Ballerina implementation of your service. You can replace the current command for the particular service with the ballerina commands for them instead.
Once you complete all 5 challenges, you can submit the source code and other details via the following mechanism.
- Document everything that we need to be aware of your solution in the root README.md file of your repository.
- Download a zip file of your GitHub repository using the GitHub web interface.
- Then follow the instructions given in this Google form. [TODO]
A panel of judges will review each successful submission based on the following criteria.
[TODO]
- You have to be a KubeCon North America 2019 attendee to participate in this hackathon.
- [TODO]
-
How do I get help with queries related to the hackathon?
If you have general questions on Ballerina, ask them on our Slack channel, Google group, or on Stackoverflow with the tag [ballerina]. If you have specific questions related to the hackathon, please visit the Ballerina booth(P13).
-
Is this an individual challenge, or can I form a team for this?
[TODO]
-
Who can participate in the hackathon?
You have to be a KubeCon North America 2019 attendee to participate in this hackathon.
-
[TODO]
[TODO]