Over a million developers have joined DZone.

CodeMash 2015 Trip Report

· Java Zone

What every Java engineer should know about microservices: Reactive Microservices Architecture.  Brought to you in partnership with Lightbend.

CodeMash 2015 took place 6-9 January in Sandusky, Ohio at the exotic Kalahari Waterpark Resort. With another sold-out year, CodeMash is quickly becoming one of the largest developer conferences state-side. It has it's roots in .NET, but is making a concerted effort to better attract a Java audience hence it was important for me to support that effort. This is especially so with Columbus JUG leader Chris Judd leading the Java track and Cleveland JUG leader Scott Seighman speaking. This year it attracted a decent section of the Java crowd. I would say it was better than last year but still has room for much improvement, especially with regards to submissions from Java centric speakers. Topics covered included .NET, methodology, JavaScript/HTML, mobile, cloud, DevOps, Hadoop, NoSQL, Docker, Java SE and Java EE.

I started the first day of the conference with one of my brand new talks this year titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here:

Thus far this new talk seems to be quite popular and well received. I am sure to present the talk again soon.

In the afternoon I delivered another one of my very popular talks on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house with very good feedback afterwards. The slide deck for the talk is posted below:

One of the goals of this talk is actually to give you the starter code for exploring this sort of architecture. The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.

The second and last day of the conference in the afternoon I delivered our likely new flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here:

Do note that I've now added detailed speaker notes available to you in the downloadable PowerPoint deck. This means that you could deliver the talk yourself if you were so inclined. Since it was towards the end of the conference attendance was sparser but still satisfactory.

All in all, this was a good trip worth doing again. If you are a Java centric speaker, do consider CodeMash as a future destination.

Microservices for Java, explained. Revitalize your legacy systems (and your career) with Reactive Microservices Architecture, a free O'Reilly book. Brought to you in partnership with Lightbend.


Published at DZone with permission of Reza Rahman, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}