Showcase of React + Redux Web Application Development

Jian Li JavaScript, React, Single-Page Application, Tutorial Leave a Comment

In the last few years, React has continuously gained popularity for the development of web applications. At Keyhole, we have several blogs talking about React and related technologies, including React, Formik, react-router, and many others.

So why would we need Redux? Quite often when we develop applications, we start with small pieces. As the business requirements change, new features/modules/components are added/removed/updated. Particularly in enterprise applications, you may end up with a deep hierarchy of parent-child relationships.

In a React application, parent component-states are passed down to its child component as property. Application states can be changed in many different places. If not managed perfectly (and, in many cases, it’s not), your system can behave differently than expected. It can become increasingly difficult for development, debugging, production support and code maintenance.

In this blog, I’ll talk about Redux and explain how it can benefit React front-end development. I’ll provide an introduction to using Redux with React and show a demonstration of reconstructing an example React application to React + Redux.

I’ll re-construct this React application into two projects. The first project will be the back-end server application which will handle all the typical business in the server end, like registration, authentication, database operation, etc. I’ll use MongoDB to persistent data and Node.js for REST API development. You can also reference RESTful API development to the Github repository open source khs-convo, released by Keyhole Software.

The second project will be pure front-end development, which will React with Redux for state management. React with Redux integration is the focus of this blog…



Service Discovery with Eureka and Zuul

Jarett Lear .NET, Microservices, Spring, Spring Boot 1 Comment

One issue that we face day to day as developers is speed of development. One of the coolest things to me in the ever-changing landscape of technology is how this issue us continually being addressed in an effort to makes our lives easier.

We have gone from having to write everything needed in a verbose way to being able to configure a simple REST API in a few lines of code with Spring Boot. The most amazing part of this is not only the ability to create the web services but also the ability to allow these services to communicate in a smart way. Spring has given us many tools to allow easy configuration and putting together things that just work (mostly).

This post is not to be considered a full guide to which the extent of these technologies can be leveraged. In this post, we give examples of how Spring Boot can be used (along with Zuul and Eureka) to create a simple discovery service.

There are other components that can be added for things like a configuration server to pull all application.properties files from a common location that is updatable in real time, or circuit breakers to allow the graceful failing of different pieces of your API.

What this post will focus on is the service discovery between Spring Boot applications. We will also touch on how, using SteeltoeOSS, .NET applications can also take advantage of being a part of the service discovery and be routed through our Spring Boot-based Zuul Gateway. We will also look at how we can integrate Spring Security into our gateway to secure the entire API no matter the language…



Blockchain Implementation With Java Code

David Pitt Blockchain, Java Leave a Comment

Bitcoin is hot — and what an understatement that is. While the future of cryptocurrency is somewhat uncertain, blockchain, the technology used to drive Bitcoin, is also very popular.

Blockchain has an almost endless application scope. It also, arguably, has the potential to disrupt enterprise automation. There is a lot of information available covering what and how blockchain works. We have a free whitepaper that goes into blockchain technology (no registration required).

This blog will focus on the blockchain architecture, particularly demonstrating how the “immutable, append-only” distributed ledger works with simplistic code examples.

As developers, seeing things in code can be much more useful in understanding how it works, than simply reading technical articles. At least that’s the case for me. Let’s get started.



user story mapping

Every Agile Software Project Needs a User Story Map

Rusty Divine Agile, Microservices Leave a Comment

In this blog, I share an example of a real-world, agile enterprise modernization project that benefited from a User Story Map.

I’m the team lead for a project to convert a business solution from COBOL to a .NET microservices architecture. Other than some interesting challenges with designing a robust microservices solution, the business logic is very straightforward – input files are processed, databases queried, output files are produced and dropped in a folder, and our goal is to match the output produced by the COBOL solution perfectly.

Yet, we lost our way fairly early on in the project because we had a typical prioritized backlog. Unfortunately, even on a straightforward, well-defined project with an engaged team, we still managed to veer off course.

Our project manager started asking questions about where we were in the project and where we were going. I struggled to answer those questions because I couldn’t make sense of all that was in our backlog. It was around this time that I took a spreadsheet and created our first User Story Map….