Matthew M Dalby
Icon

Introduction

A real world example of an Reat and REST and application. Let's rock API implementions in both NodeJS and Java to illustrate consistent requirements

What is this entire effort about

To be honest, there are multiple reasons for this effort. First and foremost, for personal selfish reasons. I wanted to take a stab at a previous project I had worked on passsionately. I had joined the project about a year into the archited effort, as I have observed so many times afterwords, architects quite often create a path that drive a team to drive forward with, grabbing he glory initially, and don‘t stick around to answer for the results. Yes, I did just state that on record, earn your battle scars by putting your time in. Learn from experience, either bad or good, and most importantly share your experiences.

This effort is personally allows me to blow off a lot of steam where I can slice off a few functional areas of the project, and optimizing as I can. In defenense of that project effort, I worked with great, great, and I repeat myself as great people. the task at hand was epic, the reources we were handed were not sufficient, the technology we had available at the time was limited. More specifically, we were constrained to maintaining state on the server side, no ability to manage that on the client side, obviously a shitshow. Conditions beyond our control, as the concept of mature frameworks such as Reast and Angular were non existent.

The game has changed since then, things have ‘kinda/sorta‘ stablized in my opinion from an architectual aspect, so let‘s have some fun with making a rewrite of some key functionality of the original effort

There are many different ways to approach this, this is my take on a technical stack, and actually two separate technical backend stacks. This will be an excersize in creating a bit of an Rosetta stone approach towards common concepts implemented by two different technical stacks. This is not an excersize in creating a contest beween to ‘competing‘ technologies, just an excersize in two different stacks, and providing real world examples in each implementation.

What is the domain problem at hand?

This effort will require some level of understanding of the domain problem at hand. So lets do a quick summary.

This project will focus on the wine industry, complex in it‘s own nature, and especially at scale. My hands on experience with problem solving in this domain lead me down a path where we were tasked with rewriting an in house system for an inventory management system that was an industry leader. This became a model for a series of aquisitions, gobbled up by by larger players, ‘company X‘, ‘Company Y‘, ‘Company z‘, who really cares. If you are reading thing in the US, there is a significant chance that last bottle of wine you have drank has label attributes backed by my efforts. I have a great deal of pride associated with that and the people that I have worked with in the past to make that happen, so this is real world scenario.

Effectively, grapes, considered raw material, and introduced into an tracking system. This could be applied to other beverage industries, the nature of this particular space and my personal experience makes this an exiting space to create and tutorial for.

I won‘t attempt to drown anyone in the details of the problem domain at hand here, but for those curious I will detail this out further in another article.

Next steps

I will be posting a series of posts and making the source code available over the next several weeks. There is a lot of effort associated with this, and I am pretty much limited to nights and weekends.