How ChatGPT-4 Guide me to Transitioning from Monolithic to Cloud-Native Architecture

Mehmet Ozkaya
6 min readMar 17, 2023

--

I asked ChatGPT-4 about a real-world software architecture problem in my company which is modernization of legacy monolithic application to cloud-native microservices.

Thanks to @Jo_Ke_ for making this photo available on @unsplash 🎁

As you know that OpenAI has announced GPT-4: the latest in its line of AI language models that power applications like ChatGPT and the new Bing. And with new model, OpenAI announces GPT-4 that can accept 25,000 words of text, images and offer more accurate responses. That means we can provide more specific information and get more keen response from the AI.

So I have decided to ask to ChatGPT-4 for one of my project which is modernization of Telecom CRM application from Monolithic to Cloud-native Microservices.

First of all let’s prepare our consulting service of GPT-4. Prompting is really important when it comes to generate detail and specific response from AI. Here you can see my starting prompt to ChatGPT-4:

You are SoftwareArchitectGPT, a software architect AI for designing and implementing large-scaled enterprise applications with High Scalable and High Available capabilities that can handle millions of requests. Your goal is analysis and identify problems with current architecture and suggests step-by-step evolution of new architectures with applying design pattern, principles and best practices.

Here you can see the response from ChatGPT-4:

Ok, its very good starting because as a Software Architects, before jump into problem, we should identify the problem and ChatGPT is requesting details of our project and requirements. Since it can accept 25,000 words of text, we can provide really long details of our project. (Of course not recommended to share privacy content about your project and company)

Here you can find the my response that includes details of my project:

Our company has big legacy monolithic application which is Telecom CRM application that includes all modules into 1 big application like Product Catalog Management, Campaign-Marketing Management, Sales Development, CPQ Management, Shopping Cart and Ordering Management, Billing and Charging and so on.

This application using from communications service providers (CSP) offers telecommunications services like mobile phone, landline and wireless services, Internet, cable, satellite, and managed services businesses. Since it is a monolithic application, this application also use single big relational database that implements complex TMForum SID model which has lots of relationships between tables. The application stack using Oracle Java Platform, Enterprise Edition (Java EE) and Java Servlet for web application. For database it has Oracle database. For messaging it is using big Oracle Service Bus application. You can think we have a big CRM application that accommodate sale request and send to ESB for order fulfillment processes. It is typical Monolithic + SOA architecture.

The current performance metrics become bottleneck for our corporate customers. The scalability and availability is not sufficient for current conditions. Because Telecom operators also has big transformations for 5G ready end-to-end digital BSS products that requires Omni-channel customer service and IoT providers. The new Telecom CRM application requires below use cases:

A flexible and centralized catalog that simplifies product management and drives fulfillment, charging and assurance.

An online charging system (OCS) that enables real-time convergent charging, policy control, decoupling and fast service creation.

A convergent billing solution that combines ease of use, out-of-the box features and a high level of configurability.

According to this, Our company has decided to re-new the current telecom CRM application to with the Cloud native architectures that provides full revenue potential of 5G applications. How can we do this architectural change into our software ?

Here you can see the response from ChatGPT-4:

Wow, these are what exactly to following steps when we are planning our modernization project. And now I can high recommend to ask all steps of details one-by-one and get more specific responses from GPT-4. But to make it simple, I skip this step and continue to ask about software patterns and tools that can we use during this process.

Here you can find the my new questions to ChatGPT-4:

Which patterns should we apply during this journey ? Which tools do you suggest to following these steps ?

Here you can see the response from ChatGPT-4:

Yes indeed ! These are the real patterns, principles and tools that we have already using on our cloud-native microservices projects. So even you have no idea of the area, you can ask and learn deep details step-by-step asking to ChatGPT-4. The new model is more accurate and less hallucinations to our responses.

Bonus: Generate Diagram with ChatGPT-4

Now we comes to point that ChatGPT-4 makes magical affect to our way-of-working style. Think that your manager request to you a prototype architecture diagram that represent how Cloud-native microservices architecture look likes for your project domain. For our case we have designing Telecom CRM application. For that reason I asked ChatGPT-4 to generate C4 diagram script for Mermaid tool.

Can you create mermaid C4 diagram script for my project domain with applying Cloud-Native microservices architecture ?

And it respond to me the script belowed:

graph TD
Client[Client App] --> APIG[API Gateway]
subgraph Microservices
APIG --> MS1[Product Catalog Management]
APIG --> MS2[Campaign Marketing Management]
APIG --> MS3[Sales Development]
APIG --> MS4[CPQ Management]
APIG --> MS5[Shopping Cart & Ordering Management]
APIG --> MS6[Billing & Charging]

MS1 --> DB1[Product Catalog DB]
MS2 --> DB2[Campaign Marketing DB]
MS3 --> DB3[Sales Development DB]
MS4 --> DB4[CPQ DB]
MS5 --> DB5[Shopping Cart & Ordering DB]
MS6 --> DB6[Billing & Charging DB]
end

subgraph Messaging
MS1 --> Kafka[Apache Kafka] --> MS5
MS2 --> Kafka
MS3 --> Kafka
MS4 --> Kafka
MS6 --> Kafka
end

subgraph Infrastructure
APIG --> Kubernetes[Kubernetes Cluster]
Kubernetes -.-> MS1
Kubernetes -.-> MS2
Kubernetes -.-> MS3
Kubernetes -.-> MS4
Kubernetes -.-> MS5
Kubernetes -.-> MS6
end

subgraph Monitoring
MS1 --> Prometheus[Prometheus] --> Grafana[Grafana]
MS2 --> Prometheus
MS3 --> Prometheus
MS4 --> Prometheus
MS5 --> Prometheus
MS6 --> Prometheus
end

Once I copy and paste this script into Mermaid-compatible editor (like Mermaid Live Editor) to visualize the diagram, you can see the result:

Generated Microservices Diagram from ChatGPT-4

No need to extra comment for above diagram, you can think that how much time it save from your current work.

Conclusion

In conclusion, we’ve explored a step-by-step process to transform a legacy monolithic Telecom CRM application into a modern, cloud-native architecture with using ChatGPT-4. It suggest us like world-class consulting report By identifying bounded contexts, decomposing the monolith, adopting containerization, and leveraging microservices patterns and tools, we can create a scalable, maintainable, and highly available system.

So I think, AI not replace our jobs but replace us with who is using AI. At least we can see that our way-of-working should be dramatically changed.

What’s Next ?

Step by Step Design Architectures w/ Course

I have just published a new course — Design Microservices Architecture with Patterns & Principles.

In this course, we’re going to learn how to Design Microservices Architecture with using Design Patterns, Principles and the Best Practices. We will start with designing Monolithic to Event-Driven Microservices step by step and together using the right architecture design patterns and techniques.

--

--

Mehmet Ozkaya

Software Architect | Udemy Instructor | AWS Community Builder | Cloud-Native and Serverless Event-driven Microservices https://github.com/mehmetozkaya