JHUG meetup May 12th 2017

Today, 12th of May, we held our next JHUG meetup (Meetup.com event). Agile Actors invited us at their new office, and also bought pizza and beverages. We had around 60-70 attendees. Our host also recorded the presentations for us, so this post will be updated with videos.

The first presentation was by Petros Kaklamanis (Linkedin), whose talk was about the Cassandra database. Petros had presented the first part in December’s meetup (video here). He picked up pointing out that Cassandra offers lightweight transactionality in two ways: compare-and-set (CAS) operations and batch statements. He went on with data modeling, and explained that defining a schema that will accommodate our needs, one has to start by analysing what queries will needed. This step will help identify the partition and clustering columns. After the schema definition, Petros underlined the importance of testing out the schema with the development tools that come with Cassandra (i.e. CQLSH), and also deciding on the way to interact with Cassandra (a driver or 3rd party integration layer, such as Spring Data). You can find the slides here (slide 57 and on for this part of the presentation) and the sample application here.

The second presentation was by Spyros Anastasopoulos (Linkedin, Twitter), whose talk was about Reactive Extensions in Java. Spyros is a long-time member of JHUG and is known for his engaging presentations. He started by explaining why modern computing has moved away from sequential programming towards concurrent programming, and that Java provides only low level tools for that, which makes reasoning about the correctness of our programs difficult. Spyros continued with the history of Reactive Extensions and explained how they hide the complexity of concurrent programming with high level constructs, and allow us to focus on our business logic. The center of Reactive Extensions is Observable, which brings together the Observer pattern and asynchronous programming. In contrast to standard Java constructs (i.e. Future) which don’t protect us from mixing together concurrency and business code, Reactive Extensions help us write our code in a clear way. Spyros went on with some common methods (create, flatMap, zip, take, amb, reduce) and also presented how he wrote a website scraper with the reactive magic. He concluded by listing the available implementations of Reactive Extensions in Java. You can find the slides here.

At the end of the meetup, we gave away a copy of Cassandra: The Definitive Guide and a copy of Reactive Programming with RxJava.

See you all in the next meetup!

Written on May 12, 2017