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
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

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Creating Effective Exceptions in Java Code [Video]
  • Cross-Platform Integration: Enabling Seamless Workflow Between AI, Microservices, and Azure Cloud
  • API Versioning in Microservices Architecture
  • Top 10 IoT Trends That Will Impact Various Industries in the Coming Years

Trending

  • Blue Skies Ahead: An AI Case Study on LLM Use for a Graph Theory Related Application
  • How Clojure Shapes Teams and Products
  • Scalability 101: How to Build, Measure, and Improve It
  • Fixing Common Oracle Database Problems
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. Why Cloud Matters: Building Global, Scalable Microservices

Why Cloud Matters: Building Global, Scalable Microservices

A hands-on experience: Learn how to build a Book Management Catalog Microservice using Java, Helidon, Jakarta NoSQL, and Oracle Cloud.

By 
Otavio Santana user avatar
Otavio Santana
DZone Core CORE ·
Feb. 17, 25 · Tutorial
Likes (4)
Comment
Save
Tweet
Share
3.0K Views

Join the DZone community and get the full member experience.

Join For Free

Software engineers must develop applications that are not only functional but also scalable, resilient, and globally distributed. This is where cloud computing plays a crucial role. Cloud platforms provide the foundation to build scalable microservices, ensuring high availability, efficient resource management, and seamless integration with modern technologies.

The Importance of the Cloud in Your Software Engineering Career

Cloud computing is no longer optional but a necessity for modern software engineers. Here’s why:

  • Scalability. The cloud enables applications to handle growing user demands without requiring massive infrastructure investments.
  • Resilience. Distributed systems in the cloud can tolerate failures, ensuring service continuity.
  • Global reach. Cloud providers offer global data centers, reducing latency and improving user experience worldwide.
  • Cost efficiency. Pay-as-you-go pricing models allow businesses to optimize costs using only the needed resources.
  • Security and compliance. Cloud providers implement best practices, making it easier to comply with industry regulations.

By mastering cloud technologies, software engineers open doors to career opportunities in DevOps, site reliability engineering, and cloud-native application development. Companies increasingly seek engineers who understand cloud architectures, containerization, and serverless computing.

Exploring Jakarta NoSQL, Helidon, and Cloud-Based Microservices

To develop scalable microservices, developers need robust frameworks and cloud-based infrastructure. Three key technologies play a crucial role in achieving this:

Jakarta NoSQL With Jakarta Data

Jakarta NoSQL is a specification that simplifies the integration of Java applications with NoSQL databases, allowing developers to work with repositories and object-mapping abstractions. Jakarta Data enhances this by standardizing data access, providing a more seamless experience when managing persistence operations. In Domain-Driven Design (DDD), repositories play a crucial role by providing an abstraction layer between the domain model and database interactions, ensuring the domain remains independent of infrastructure concerns.

Helidon

Helidon is a lightweight Java framework optimized for microservices. It offers two development models — Helidon SE, a reactive, functional approach, and Helidon MP, which follows Jakarta EE and MicroProfile standards. This flexibility makes it easier to build efficient and scalable cloud-native applications. In the DDD context, Helidon provides the tools to implement service layers, handling use cases while ensuring separation between the application layer and domain logic.

Oracle Cloud Infrastructure (OCI)

Oracle Cloud provides a resilient, high-performance environment for deploying microservices. With support for OCI Containers, API management, and global database solutions like Oracle NoSQL, developers can build and scale applications efficiently while ensuring low-latency access to data worldwide. Cloud infrastructure aligns with the strategic design principles in DDD by enabling bounded contexts to be deployed independently, fostering modular and scalable architectures.

One key advantage of cloud-based microservices is integrating with globally distributed databases, ensuring high availability and scalability. This approach empowers developers to optimize data read and write performance while maintaining low-latency operations.

Developers can explore practical applications that integrate these technologies in real-world scenarios for a more profound, hands-on experience.

Understanding Domain-Driven Design Concepts in the Microservice

This section introduces a Book Management Catalog Microservice, a sample project demonstrating how to implement microservices using Java, Helidon, Jakarta NoSQL, and Oracle Cloud. This microservice exemplifies how Domain-Driven Design (DDD) principles can be applied to real-world applications.

Why Domain-Driven Design (DDD)?

DDD is essential when building complex software systems, as it helps developers align their models with business requirements. DDD enhances maintainability, scalability, and adaptability by structuring software around the domain. In this microservice, DDD principles ensure clear separation between different architectural layers, making the application more modular and straightforward to evolve.

Entity: Book

In DDD, an Entity is an object defined by its identity rather than its attributes. The Book entity represents a distinct domain concept and is uniquely identified by its id. The Book entity persists in a NoSQL database, ensuring a scalable and flexible data structure.

Java
 
@Entity
public class Book {

    @Id
    private String id = java.util.UUID.randomUUID().toString();

    @Column
    private String title;

    @Column
    private BookGenre genre;

    @Column
    private int publicationYear;

    @Column
    private String author;

    @Column
    private List<String> tags;
}


Value Object: BookGenre

A Value Object in DDD represents a concept in the domain that has no identity and is immutable. The BookGenre enum is a classic example of a value object, as it encapsulates book categories without requiring unique identification.

Java
 
public enum BookGenre {
    ACTION,
    COMEDY,
    DRAMA,
    HORROR,
    SCIENCE_FICTION,
    FANTASY,
    ROMANCE,
    THRILLER,
    FICTION,
    DYSTOPIAN
}


Repository: Managing Persistence

The repository pattern in DDD abstracts persistence, providing a mechanism to retrieve domain objects while keeping the domain model free from infrastructure concerns. Jakarta Data simplifies the implementation of repositories, ensuring that data access is clean and structured.

Java
 
@Repository
public interface BookRepository extends BasicRepository<Book, String> {
}


Service Layer: Application Logic

The service layer orchestrates use cases and provides an interface for interactions with the domain model. This layer remains distinct from domain logic and is responsible for handling application-specific operations.

Java
 
@ApplicationScoped
public class BookService {
    private final BookRepository bookRepository;
    private final BookMapper bookMapper;

    @Inject
    public BookService(@Database(DatabaseType.DOCUMENT) BookRepository bookRepository, BookMapper bookMapper) {
        this.bookRepository = bookRepository;
        this.bookMapper = bookMapper;
    }
}


Conclusion

By leveraging Jakarta NoSQL, Helidon, and Oracle Cloud, developers can build resilient, scalable microservices that align with Domain-Driven Design principles. Entities, value objects, repositories, and service layers contribute to a well-structured, maintainable application. Cloud infrastructure further enhances these capabilities, allowing microservices to be deployed globally with high availability.

To further explore these concepts in practice, consider this workshop on Oracle LiveLabs, where you can gain hands-on experience with Jakarta NoSQL, Helidon, and Oracle Cloud while building a real-world microservice.

Cloud computing Domain-driven design Data Types microservices

Opinions expressed by DZone contributors are their own.

Related

  • Creating Effective Exceptions in Java Code [Video]
  • Cross-Platform Integration: Enabling Seamless Workflow Between AI, Microservices, and Azure Cloud
  • API Versioning in Microservices Architecture
  • Top 10 IoT Trends That Will Impact Various Industries in the Coming Years

Partner Resources

×

Comments

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
  • [email protected]

Let's be friends: