RESTEasy 1.0 GA Released

This article was originally published on January 1, 2009.

Java Just Got a Little Better

Have you been struggling to use the Java system as it exists today? If so, don't worry, you are not alone. There are plenty of people going through the same troubles, and no one is pleased with the fact that they have to struggle as hard as they do just to get some simple code put out into the world. Unfortunately, that is the position that many find themselves in today. 

From SOA, to GraphQL, to Macroservices

SOA vs Microservices

Should you happen to be researching "Service-Oriented Architecture" (SOA) on the Internet today, the latest articles you are likely to find will typically be titled: "SOA vs microservices". Complicating the battle somewhat is that you will also find respected industry experts, such as Martin Fowler, stating that some “consider microservices to be one form of SOA, perhaps service orientation done right”.

Martin goes on to declare: “The problem…is that SOA means too many different things and that most of the time we come across something called 'SOA' [there is]…a focus on ESBs (Enterprise Service Buses) used to integrate monolithic applications. This common manifestation of SOA has led some microservice advocates to reject the SOA label entirely”. As such, for the remainder of this article, I will assume the use of ESB middleware as a fundamental characteristic of SOA landscapes, as well as representing the most fundamental distinction there is between SOA and REST.

Microservices: Breaking Down Traditional Application Design

Over the last 20 years, organizations around the world have begun breaking down their monolithic architectures into smaller and more manageable components. This paved the way for the emergence of the service-oriented architecture (SOA), where applications were broken down into their functional components.

Then, in the last 10 years, we broke these down even further with the microservices pattern, which aimed to address the inherent problems found within monolithic SOAs.

Service-oriented API Task Scheduling

An integral part of Zato, its scalable, service-oriented scheduler makes it is possible to execute high-level API integration processes as background tasks. The scheduler runs periodic jobs, which, in turn, trigger services, and services are what are used to integrate systems.

Integration Process

In this article, we will check how to use the scheduler with three kinds of jobs, one-time, interval-based, and Cron-style ones.

Understanding API Rate-Limiting Techniques in Zato

Enabling rate-limiting in Zato means that access to Zato-based APIs can be throttled per endpoint, user, or service — including options to make limits apply to specific IP addresses only — and if limits are exceeded within a selected period of time, the invocation will fail. Let's check how to use it all.

Where and When Limits Apply

Rate-limiting aware objects in Zato

Publish/Subscribe and Asynchronous API Integrations

Publish/Subscribe and Asynchronous API Integrations

This article introduces features built into Zato that let you take advantage of publish/subscribe topics and message queues in communication between Zato services, API clients, and backend systems.

Overview

Let's start by recalling the basic means through which services can invoke each other.

Voxxed Days Microservices 2019: Bernd Rucker on “Complex Event Flows in Distributed Systems”

Hi Bernd, tell us who you are and what lead you into microservices?

Our customers. Over the last years they adopted that architectural style more and more – and of course, had questions around it. Then I saw a lot of misunderstandings around how to implement end to end business processes or workflows in these microservices architectures – as people tried to avoid mistakes made with BPM and SOA. That got me into thinking about that whole topic and I got quite enthusiastic about it – which lead to a couple of articles and more than 100 talks around the world.  

Service-Oriented Architecture

Service-Oriented Architecture Overview

A service-oriented architecture (SOA) is an architectural pattern in computer software design in which application components provide services to other components via a communications protocol, typically over a network. The principles of service-orientation are independent of any product, vendor or technology.

SOA offerings should provide a solid solution to the problem of complex architecture and code redundancies, enabling efficient interoperability between systems, applications, and services.

How NOT to Be API-Misled for Connectivity!

How NOT to be API-misled for connectivity!

It was a few years back when API-led connectivity was getting popular and our customers wanted to see it being brought into practice. Some of them also began to choose their hybrid integration products based on the product’s inherent support for the approach. After having implemented two large hybrid integration programs for two different industries (Banking and Manufacturing), I thought I should share my experience as do’s and don’ts for API-led connectivity and Hybrid Integration.

API-led connectivity

The approach was termed as the next step in the evolution of SOA, which is why its principles and the very fundamental concepts will remain timeless, at least in the context of software architecture.

Zato: A Successful Python 3 Migration Story

Now that Python 3 support is available as a preview for developers, this post summarizes the effort that went into making sure that Zato works smoothly using both Python 2.7 and 3.x.

In fact, the works required were remarkably straightforward and trouble-free, and the article discusses the thought process behind it, some of the techniques applied, and tools used.

Anypoint Platform Audit — Extracting API Access and Client Contracts

Introduction

MuleSoft’s Anypoint Platform™ is the world’s leading integration platform for SOA, SaaS, and APIs. By leveraging Anypoint Platform, companies can re-architect their SOA infrastructure from legacy systems, proprietary platforms, and custom integration code to create business agility. They can migrate technology infrastructure to the public or private cloud and prioritize adoption of SaaS applications and other cloud technologies. It is also important to adapt to a DevOps culture to bring in this agility in the process of transforming the business.

Continuous Integration is the most important part of DevOps that is used to integrate various stages, and Jenkins is one of the most famous tools. Jenkins is an open source automation tool written in Java with plugins built for Continuous Integration purposes. Jenkins is used to build and test software projects continuously, making it easier for developers to integrate changes to the project and making it easier for users to obtain a fresh build. But shouldn’t there be more to it? What if we could create a Jenkins Scripted Pipeline that can be used to support some of the Audit asks?

Microservices and the Saga Pattern, Part 2

Welcome back! If you missed Part 1, you can check it out here.

I hope that by now you are pretty much clear about what a microservice is and have started analyzing the strengths and weaknesses of it. I tried to keep it simple by giving just an overview of what a microservice should look like, but there’s a lot more to it that I won’t be covering in this series. Though I would like to mention a key difference between microservices and SOA (Service Oriented Architecture). Yes, the two are not the same and that is because SOA does not talk about the service deployment and it is the reason that when we build a system using SOA we end up building it in a monolithic style, where all the services are deployed altogether as one application. On the other hand, microservices are a subset of SOA, but they require that each of the services is independently deployed, meaning that they can be put on many different machines and any number of copies of the individual services could be deployed.