Over a million developers have joined DZone.

Feature Based Delivery (FBD) — Microservice Architecture 2.0

DZone 's Guide to

Feature Based Delivery (FBD) — Microservice Architecture 2.0

See how the approach of feature-based delivery can help solve many of the problems associated with microservices architecture.

· Microservices Zone ·
Free Resource

A few years ago, we were in the process of evaluating a next-gen architecture for the Equinix customer portal and APIs, to accommodate the growing needs of the platform. 

Monolithic applications were developed using Java and deployed as a single war file. We split the application using microservice based architecture. The developer tends to create a new service for new product requirements. There were a few challenges after moving to microservice based architecture:

After few years of microservice based architecture development, we ended up with too many services which are hard to manage. When organization move to Micro-service based architecture make sure you have a strong governance around what constitutes Micro-service and eco-system support for post-release maintenance. 

In microservice based application development, most of the time should be spent on how to split your current application into a set of features organized based on how your organization functions. We had a re-look at our microservice application development and consolidated services into Features or Domain Model.

Feature-Based Delivery (FBD) is an approach for simplifying software engineering — by designing, building, testing, and releasing fully functioning code in an independent and iterative manner. Each piece of functioning code is called an FBD component (FBDc). Software applications and larger systems are built by assembling a FBD component family (FBDcf)

However, our experience with the integration or orchestration of different microservices is that it is considerably complex, not only in terms of custom mediation logic, which must be as complex as the end customer API contract demands with respect to a given channel, but also at the level of transactional control and correlation, even parallelism and performance.

We have introduced the 12-factor standard based Spring Boot service template which takes care of all the best practices for FBD services. The developer will be able to clone the template and define the contract for given FBD and start development. Its benefits are further outlined in the graphic below:

If the right set of tools is not used for microservice monitoring, there is a high chance the entire initiative will be in jeopardy. Monitoring principles were incorporated as part of our FBD service template, along with 12-factor standards. Leveraging telemetry techniques will allow you to establish more effective monitoring as you make your way towards microservices.

What's Next?

 Meaningful software architecture is a living system with design and decisions that adapt to new changes based on the learning. The end goal of Feature-Based Delivery is moving to the μA architecture pattern. μAPP contains its own user interface, specific business logic, and separate/shared data storage. This architecture addresses a end-to-end packed solution for the given app. 

In future articles, we’ll discuss more details about the μA architecture pattern. Stay tuned.

java ,containers ,ci/cd ,microservices

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}