Get the Newsletter

Solace and Aurelia Battleship Game Course

Posted by Thomas Kunnumpurath on February 4, 2020

Today, I'm excited to introduce you to Thomas Kunnumpurath, from Solace. Solace has put together a free course on creating a game of Battleship with Aurelia (TypeScript), Spring Cloud Stream (Java), and Solace PubSub+. It's a great way to learn the basics of messaging and event-driven architecture with the Aurelia framework.

As a fun and interactive way to help developers understand what the Solace platform has to offer, Thomas Kunnumpurath (VP of Systems Engineering for the Americas) and a few members of his team got together and scoped out an application to help users get educated on their product.

They created a free Udemy Course and a corresponding codelab that uses Aurelia (TypeScript), Spring Cloud Stream (Java), and Solace PubSub+ to communicate between all the components.

The first half of the codelab implements the entire application on the client side with Aurelia and Solace PubSub+ and the second half demonstrates how easy it is to move the state management over to the server side using the Spring Cloud Stream framework and using the Solace PubSub+ broker to communicate between these two components. This was easily accomplished because of the rich polyglot support of the Solace PubSub+ APIs.

Solace PubSub+ APIs

We encourage everyone interested in learning more about building modern applications in a distributed system (and developing a working game of Battleship while you’re at it!) to sign up for the Udemy Course and/or go through the codelab . Be sure to leave reviews and provide feedback to improve the course!

Why was Aurelia chosen for the course?

When the team got together for the initial design of the course, one of the first things we had to decide on was what languages and frameworks we were going to build this course on.

“We knew we wanted to develop the back-end using Solace's Java-based Spring Cloud Stream binder ,” explains Thomas Kunnumpurath of Solace, “Aurelia was really the only front-end framework here that satisfied our requirements for a framework that had strong support for the same paradigms that are expressed with Spring and Java – it’s also easy and elegant to use.”

For those that are not as familiar, the Java Spring Framework has perhaps been the most influential framework on making dependency injection a popular design pattern for Java applications. That was another key factor for Solace on making a decision on which front-end framework to use.

Mr. Kunnumpurath also explains, “We had a lot of options for the front-end framework, but with Aurelia’s support for Dependency Injection, TypeScript, a built in router, clean separation between the HTML and the JavaScript via Views and View-Models – it was a no-brainer.” In fact, they were able to move some of the front-end logic to the back-end rather quickly because of these very reasons as they were building out the course.

More on Aurelia and Solace

"Aurelia is also extensively used within Solace's core products and we will be working with Rob & Team to feature this in a case study - so stay tuned! Finally, I'm pleased to announce on behalf of Solace, that we have just signed on to be sponsors of the Framework. We are eagerly looking forward to Aurelia 2.0 and what it will deliver." says Thomas Kunnumpurath.

About Solace

Solace develops an advanced event broker that comes in multiple forms – a hardware appliance , a software broker , and a message broker as a service in your favorite public cloud. They are deployed in multiple industry verticals such as aviation , financial services , and even connected cars .

They are proud to have introduced the concept of an event mesh to the industry, which is an architectural construct to link together event brokers no matter where they are deployed (on premises, hybrid cloud, private cloud, etc.). In addition, they are also actively developing an event portal to help users with adopting an event-driven architecture and visualizing their microservices at work.

Aurelia Event Mesh