Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 115325
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T03:00:05+00:00 2026-05-11T03:00:05+00:00

I am building an content serving application composing of a cluster of two types

  • 0

I am building an content serving application composing of a cluster of two types of node, ContentServers and ContentBuilders.

The idea is to always serve fresh content. Content is fresh if it was built recently, i.e. Content.buildTime < MAX_AGE.

Requirements:

*ContentServers will only have to lookup content and serve it up (e.g. from a distributed cache or similar), no waiting for anything to be built except on first request for each item of Content.

*ContentBuilders should be load balanced, should rebuild Content just before it expires, should only build content that is actually being requested. The built content should be quickly retrievable by all ContentServers

What architecture should I use? I’m currently thinking a distributed cache (EhCache maybe) to hold the built content and a messaging queue (JMS/ActiveMQ maybe) to relay the Content requests to builders though I would consider any other options/suggestions. How can I be sure that the ContentBuilders will not build the same thing at the same time and will only build content when it nears expiry?

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T03:00:05+00:00Added an answer on May 11, 2026 at 3:00 am

    Honestly I would rethink your approach and I’ll tell you why.

    I’ve done a lot of work on distributed high-volume systems (financial transactions specifically) and your solution–if the volume is sufficiently high (and I’ll assume it is or you wouldn’t be contemplating a clustered solution; you can get an awful lot of power out of one off-the-shelf box these days)–then you will kill yourself with remote calls (ie calls for data from another node).

    I will speak about Tangosol/Oracle Coherence here because it’s what I’ve got the most experience with, although Terracotta will support some or most of these features and is free.

    In Coherence terms what you have is a partitioned cache where if you have n nodes, each node possesses 1/n of the total data. Typically you have redundancy of at least one level and that redundancy is spread as evenly as possible so each of the other n-1 nodes possesses 1/n-1 of the backup nodes.

    The idea in such a solution is to try and make sure as many of the cache hits as possible are local (to the same cluster node). Also with partitioned caches in particular, writes are relatively espensive (and get more expensive with the more backup nodes you have for each cache entry)–although write-behind caching can minimize this–and reads are fairly cheap (which is what you want out of your requirements).

    So your solution is going to ensure that every cache hit will be to a remote node.

    Also consider that generating content is undoubtedly much more expensive than serving it, which I’ll assume is why you came up with this idea because then you can have more content generators than servers. It’s the more tiered approach and one I’d characterize as horizontal slicing.

    You will achieve much better scalability if you can vertically slice your application. By that I mean that each node is responsible for storing, generating and serving a subset of all the content. This effectively eliminates internode communication (excluding backups) and allows you to adjust the solution by simply giving each node a different sized subset of the content.

    Ideally, whatever scheme you choose for partitioning your data should be reproducible by your Web server so it knows exactly which node to hit for the relevant data.

    Now you might have other reasons for doing it the way you’re proposing but I can only answer this in the context of available information.

    I’ll also point you to a summary of grid/cluster technologies for Java I wrote in response to another question.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm building some custom content types to capture customer data on a website. Admins
I'm building a java web media-scraping application for extracting content from a variety of
We're building a very content rich site in Drupal. It's my first time working
I am building a custom Content Management System for my client, using C#2008, ASP.Net
I'm building a website with user generated content. On the home page I want
I'm building a site with django that lets users move content around between a
Building a new Mobile Web Platform for Mobile Users to purchase & download content
I'm building a site using CodeIgniter that largely consists of static content (although there
I'm building a web app where 80-90% of the content is either a form
I'm building an AJAX app which animates in content dynamically. Since all links are

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.