Introducing IBM StockTrader – IBM Developer


Introduction to the IBM Inventory Dealer pattern

The IBM Inventory Dealer software is an easy inventory buying and selling pattern, the place you’ll be able to create numerous inventory portfolios and add shares of inventory to every for a fee. It retains observe of every portfolio’s whole worth and its loyalty degree, notifying you of adjustments in degree, which have an effect on the fee charged per transaction. It additionally enables you to submit suggestions on the appliance, which can lead to incomes free (zero fee) trades, primarily based on the tone of the suggestions. (Tone is set by calling the Watson Tone Analyzer, which shall be lined in a future article).

The pattern is meant to showcase what one would possibly count on after performing a lift-and-shift of a conventional monolithic, on-premises software to 1 that has been refactored as Docker(container)-based microservices working inside a contemporary Kubernetes-based setting. It intentionally reveals off the way to use the standard Java EE programming fashions, resembling JDBC and JMS, to entry conventional system-of-record sources, resembling a relational database or a message queueing infrastructure. Be aware that whereas the appliance often makes use of IBM Db2 and MQ, it additionally works nice with open supply applied sciences, like Apache Derby because the relational database, and with the JMS server constructed into Open Liberty, an open-source cloud-native Java runtime.

The idea demonstrates the way to run a microservices-based software in a Kubernetes setting. Initially examined in a MiniKube, the appliance is usually deployed to a Kubernetesplatform in public clouds like IBM Cloud Kubernetes Service or as hybrid cloud deployment atop Pink Hat OpenShift Container Platform. This pattern demonstrates utilization of varied IBM middleware merchandise, resembling Db2, MQ, and ODM, every of that are deployed with their Helm charts containers to Kubernetes, referred to as from Java-based micro-services working atop Open Liberty.


The entire supply code is publicly out there in GitHub. There are eight repositories beneath the IBMStockTrader org, every of which represents a separate microservice that delivers a selected functionality. For instance, the /stock-quote repository, offers the performance of wanting up the value of a given inventory and takes care of caching such values in Redis for a configurable time frame.

The constructed variations of every of those repositories can be found in public DockerHub. For instance, to work with the stock-quote microservice, you would wish entry to ibmstocktrader/stock-quote, otherwise you would pull it right down to your Docker register utilizing docker pull ibmstocktrader/stock-quote.

Whether or not you like to clone the supply code from GitHub and construct every microservice your self, or simply use the pre-built photos in DockerHub, you’ll be able to simply get this pattern up and working in your personal Kubernetes setting.


As said earlier, this pattern has been factored right into a set of microservices that work collectively to ship the general software. The next diagram reveals the interactions between these microservices:

Stocker Trader for IBM Private Cloud

As you’ll be able to see, the portfolio microservice sits on the middle of the appliance, serving because the controller in a typical Mannequin View Controller (MVC) structure, accessed by a alternative of purchasers that present the view. This microservice takes care of persistence utilizing JDBC, messaging utilizing JMS, and makes REST calls to get inventory quotes or to drive a enterprise rule in IBM Operational Resolution Supervisor (ODM); plus, it drives Watson and invokes APIs in API Join within the public IBM Cloud. There’s additionally one old style Enterprise Java Bean (EJB) — particularly a Message Pushed Bean (MDB), which listens for the messages despatched from portfolio, and which invokes a notification service. Utilizing an Istio routing rule that may be specified per portfolio, it sends its notification both to a Slack channel (utilizing a “serverless” IBM Cloud Capabilities motion sequence) or as a tweet to the @IBMStockTrader Twitter account.


Although all the back-end microservices on this pattern are written in Java, we enter the world of polyglot programming in relation to which person interface you select. One is written in Java, and the opposite in Node.js/Vue.js. Each name the very same REST providers from the portfolio microservice, however every renders the outcomes differently within the net browser.

The Java shopper, named dealer, is intentionally very simplistic, in order to be simply understood by its supply code. It’s merely a set of servlets that make REST calls to porfolio and returns uncooked HTML. There is no such thing as a fancy CSS or JavaScript, simply to maintain every little thing to the purpose. (Actually, you’ll be able to flip off the JavaScript engine in your browser and it nonetheless works the identical.) Whereas not significantly fairly, it will get its level throughout as to the way to name JAX-RS-based microservices and the way to take care of the JSON that will get returned and render it in a UI.

Java Client Trader Interface

Then again, the opposite shopper, named tradr (notice the stylish lack of an “e”), delivers a way more modern-looking person interface. Working within the browser’s JavaScript engine, it makes use of Node.js to drive the back-end calls and Vue.js to render the outcomes. Its code is a little more sophisticated to stroll by way of, however it’s a good instance of the type of subtle person interface that prospects count on as of late.

Modern-looking interface Tradr

Be taught extra

Test it out on GitHub

Study IBM StockTrader on Git Hub and contribute to its code.

Open Liberty

Be taught extra in regards to the open-source cloud-native Java runtime, Open Liberty


Get hands-on studying and constructing with the APIs and applied sciences talked about within the article utilizing one of many Open Liberty guides:

MicroProfile and Jakarta EE

See what MicroProfile and Jakarta EE supply when it comes to open cloud-native Java APIs for Java builders.


Please enter your comment!
Please enter your name here