DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Because the DevOps movement has redefined engineering responsibilities, SREs now have to become stewards of observability strategy.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Related

  • Curating Efficient Distributed Application Runtime (Dapr) Workflows
  • Mastering System Design: A Comprehensive Guide to System Scaling for Millions (Part 1)
  • 5 Ways a Service Mesh Can Better Manage App Data Sharing
  • Scatter-Gather Pattern

Trending

  • Designing AI Multi-Agent Systems in Java
  • How Kubernetes Cluster Sizing Affects Performance and Cost Efficiency in Cloud Deployments
  • Designing for Sustainability: The Rise of Green Software
  • Proactive Security in Distributed Systems: A Developer’s Approach
  1. DZone
  2. Data Engineering
  3. Data
  4. Moving From Oracle ATG to Microservices-Based Commerce

Moving From Oracle ATG to Microservices-Based Commerce

Advantages of microservices-based commerce, how it can grow your business, and how to migrate your data to build a better platform.

By 
James Konik user avatar
James Konik
·
Jul. 07, 21 · Tutorial
Likes (2)
Comment
Save
Tweet
Share
3.3K Views

Join the DZone community and get the full member experience.

Join For Free

Using a single platform hosted from an on-premise server was once a great way to do business. These days, there are better ways to work. A microservices-based architecture uses scalable, reusable components so you can adapt quickly to the changing online world.

Oracle ATG is a server-side, component-driven platform that allows you to use headless systems while retaining most of its features. So if you already have an Oracle ATG setup, you can keep the frontend and migrate the backend to a microservices-based alternative for more flexibility. 

In this post, we’ll talk about the advantages of microservices-based commerce and how it can help grow your business. If you’re moving from Oracle ATG and want to learn how and why to make the switch to microservices, I’ll explain what you need to know and show you some simple examples of how you can migrate your data.

Why Microservices?

Oracle ATG is excellent in many ways but has limitations. Moving away from it completely or partially can avoid those problems. Let's look at some of the areas microservices can improve. 

Security

  • When security issues arise, a fixed system like Oracle ATG can leave you stuck because you need to wait for a patch and then update the whole system.
  • Microservices allow the building blocks of your system to be regularly updated, individually dealt with, and even replaced or temporarily taken offline.
  • Due to microservices's modular nature, you can tune everything to your needs and update specific elements at any time.

Technical Limitations

  • Oracle ATG’s old technology compels developers to understand not only Java but also ATG’s Nucleus framework. Finding and retaining these highly specialized developers who can update your system adds another barrier.
  • Working with dated technologies like JavaServer Pages is slower and more challenging than more recent alternatives. Critical features like dynamic pricing, advanced search, and cross-channel real-time inventory availability are hard or impossible to implement in Oracle ATG.

Flexibility

  • With a headless system, your backend and frontend are not tightly coupled. You can add different frontends for different platforms and delivery channels that don't need to be updated every time you change the backend.

Replacing Oracle ATG

Online platforms offer so many features that it can be hard to know where to begin rebuilding. Let’s talk about the core features that should be your priority.

Step 1: Decide Where to Start the Migration

Let's look at some of Oracle ATG's services and decide what to implement using microservices. 

Product Information Management (PIM)

Storing product information is a crucial part of most online stores, as many businesses hold vast data. Thus, transferring this to a new system accurately and automatically is an essential first step.

With a microservices-based backend, this data is available across the whole set of services you offer, and once it’s there, it won’t need to be reformatted or reentered for new systems.

Because this is such a crucial step, it’s imperative that you correctly do so. Fabric can help with its own PIM system, ensuring this critical step goes smoothly.

Order Management System (OMS)

You won’t sell much if the customer can’t make orders, so along with your product data, a new order management system should be near the top of your to-do list.

It needs to handle all potential transactions a customer can make while placing an order, collecting payment details, and passing them to your payment handler. It needs to check if stock is available, update it, and let your warehouse know what to deliver. You'll also want to so users can track what they ordered.

Getting this right is essential and shows customers they can trust your site with their information. Mistakes can put people off ordering entirely, and that costs you money.

Building this system with microservices means you can perfect everything and use the backend to support a range of frontend services. You can focus on the presentation and deliver the best user experience possible.

Fabric has a prebuilt OMS system that can save you the trouble of building it yourself. See if it does everything you need, and compare the cost to set everything up yourself.

Other Supporting Services

Aside from those already mentioned, Oracle ATG has many features that you’ll also need to replicate. Some you might not want; not copying those can improve your new system’s agility and manageability.

The core services of Oracle ATG include ID generators, scheduling, and random number generation, which may be helpful but also showcase its monolithic nature. Take advantage of the opportunity to examine what Oracle ATG does and replicate what you need most.

Step 2: Build a Middle Layer

When moving services away from Oracle, you can use the API gateway pattern to route calls to your new backend replacements. That way, you can sidestep Oracle’s backend architecture while continuing to use its frontend features.

With your gateway in place, you can focus on building new services one at a time, which allows you to effectively “swap out” legacy services. The gateway can send some calls to Oracle ATG and some to your new system, simplifying things so you can monitor the effects of your changes.

It also means you can revert to your old setup if needed. Just replace your new routing calls with the old ones in the gateway or service mesh.

Step 3: Migrate Data From Oracle ATG to Microservices

If you have an existing Oracle ATG setup, it probably has a large amount of data that you need to transport to your new system. One way to do this is to export it from Oracle to an XLS or CSV file. Another is to export everything in the database to an XML file.

Exporting Data From Oracle ATG

Oracle ATG includes a huge number of services in its API. When rolling your setup, you will want to replicate some but not all of this functionality. As well as having a more streamlined, focused set of services, you can also add API features that precisely do what you want.

To get data out of Oracle ATG and into your new system, you’ll need to look carefully at how it is stored and see whether you want to replicate or change existing data structures. If the system transfers data from one property to another, you’ll need to decide whether to make changes and how.

The following table lists properties used to store product data, sorted by how each property is set:

ATG Control Center Catalog Maintenance Service Other
auxiliaryMedia ancestorCategories catalogs
childSKUs ancestorCategoryIds catalogsRelatedProducts
description parentCategoriesForCatalog creationDate
displayableSkuAttributes siteIds dynamicRelatedProducts
displayName   manufacturer
endDate   parentCategories
fixedRelatedProducts   parentCategory
id   type
keywords   version
largeImage    
longDescription    
productInfos    
relatedProductGroup    
relatedProducts    
smallImage    
startDate    
template    
thumbnailImage  

For more details, check this documentation.

Importing Data Into Microservices

After exporting, you can use JavaScript to pipe the data into your new microservices. We’ll walk you through an example of how to do that in AWS.

Amazon can copy the data from your old database to the new services using TypeScript and SQS. Have a look at the documentation for more details. Here’s an example of how you can adapt that code. Only a few fields are included:

JavaScript
 
const { SQSClient, SendMessageCommand } = require("@aws-sdk/client-sqs");
 
const REGION = "us-west-1"; //replace with your region
 
const params = {
 
DelaySeconds: 12,
  MessageAttributes: { // adjust this to your data if different
	id: {
  	DataType: "Number",
  	StringValue: "543",
	},
	displayName: {
  	DataType: "String",
  	StringValue: "Pure Cotton Regular Fit Shirt",
	},
	manufacturer: {
  	DataType: "String",
  	StringValue: "Mark’s Shirts",
	},
	version: {
  	DataType: "Number",
  	StringValue: "3",
	},
  },
  MessageBody:
	"Clothing Store Product Data.",
 
  QueueUrl: "SQS_QUEUE_URL", //replace this with your queue URL
 
}
 
const sqs = new SQSClient({ region: REGION});
 
const run = async () => {
  try {
	const data = await sqs.send(new SendMessageCommand(params));
	console.log("Success, product sent. MessageID:", data.MessageId);
  } catch (err) {
	console.log("Error", err);
  }
};
run();

Test and Repeat

Taking the transition one step at a time allows you to take stock and ensure no bugs have crept in. The best way to avoid hiccups is by testing everything and making sure your changes work correctly before moving on to the next service.

If you repeat this process, you can migrate the elements of your setup one by one while minimizing disruption. Remember, doing too much at once can make it hard to track bugs and fix problems.

Conclusion

A microservices-based approach will leave you better equipped to compete in online commerce. The increased flexibility and modular nature let you expand and improve at your own pace.

Of course, doing everything yourself gives you complete control, but it can be expensive and time-consuming. You can quickly and easily add a prebuilt solution for some or all of your microservice infrastructure; it’s worth considering.

Fabric lets you build headless microservices that support all kinds of delivery channels. Get in touch to see if we can support the changes you make to reap the benefits of modernized technology.

microservice Data (computing)

Published at DZone with permission of James Konik. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Curating Efficient Distributed Application Runtime (Dapr) Workflows
  • Mastering System Design: A Comprehensive Guide to System Scaling for Millions (Part 1)
  • 5 Ways a Service Mesh Can Better Manage App Data Sharing
  • Scatter-Gather Pattern

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!