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 Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
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
Partner Zones AWS Cloud
by AWS Developer Relations
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
Partner Zones
AWS Cloud
by AWS Developer Relations
Securing Your Software Supply Chain with JFrog and Azure
Register Today

Trending

  • Strategies for Reducing Total Cost of Ownership (TCO) For Integration Solutions
  • Front-End: Cache Strategies You Should Know
  • Step Into Serverless Computing
  • Mastering Go-Templates in Ansible With Jinja2

Trending

  • Strategies for Reducing Total Cost of Ownership (TCO) For Integration Solutions
  • Front-End: Cache Strategies You Should Know
  • Step Into Serverless Computing
  • Mastering Go-Templates in Ansible With Jinja2
  1. DZone
  2. Data Engineering
  3. AI/ML
  4. Introducing Apache Apollo: Part I

Introducing Apache Apollo: Part I

Christian Posta user avatar by
Christian Posta
·
Aug. 23, 12 · Interview
Like (0)
Save
Tweet
Share
13.93K Views

Join the DZone community and get the full member experience.

Join For Free

Apache Apollo is the next-generation version of ActiveMQ built “from the ground up” on a core designed to be faster and scale better on multi-processor machines. ActiveMQ is one of the most popular open-source (if not the most popular) messaging brokers, and supports good performance, persistence messaging, high-availability, and networks of brokers. Most importantly, ActiveMQ has become very stable through all of its use, and we have been supporting some of the world’s biggest names in retail, banking, e-commerce and government that use it.

As great as ActiveMQ is right now, it has some complex threading implementations that keep it from being able to scale efficiently on higher-core, higher-resource machines. The threading implementation concerns are not around improper threading, but more that it was designed and developed at a time when there weren’t very many proven asynchronous java APIs and non-blocking IO libraries. Any application is susceptible to scalability concerns when there is shared state, contended synchronizations and exclusive locking.

However, ActiveMQ is good at what it does and since it’s stable right now, it would be a bad idea to re-write its threading architecture. So that’s where Apollo comes in: right now it’s a subproject of ActiveMQ where we can take all of the experiences of the ActiveMQ 5.x line, combine it with a new threading architecture, and develop a messaging broker that will meet demands of systems in the future with millions of destinations, hundreds of thousands of connections, high throughput, and utilize resources as efficiently as possible. Eventually, once backward compatibility is reached, Apollo will become ActiveMQ 6.0.

For those of you asking “Does that mean ActiveMQ is EOL?” The answer is emphatically “no”. ActiveMQ still has a very long life ahead of it, and as mentioned is being used by industry leaders. Bug fixes and support still continues for ActiveMQ through FuseSource (soon to be RedHat) and of course through the community. As long as there is interest in the community, ActiveMQ (or any Apache project) will not go away.

The goals of Apollo aren’t that far fetched, and it isn’t such a green project. It’s been worked on for over two years, had 6 candidates during its beta period, and v1.0 was released in February 2012. There are already quite a few people using it and are really putting it through the ringer. Hiram Chirino, the lead developer on Apollo, has also posted some very impressive benchmarks comparing Apollo with other mainstream message brokers: RabbitMQ, HornetQ, and ActiveMQ. See the stomp benchmarks here and the JMS benchmarks here.

At the time of this writing, Apollo has just released a new version, v1.4.

In part II, we’ll take a look at Apollo’s core threading architecture, hawtdispatch, Grand Central Dispatch, and some of the scalability and performance gains enabled by the new architecture. Stay tuned!

Threading Open source Architecture Backward compatibility IT Scalability Implementation Machine application

Published at DZone with permission of Christian Posta, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Trending

  • Strategies for Reducing Total Cost of Ownership (TCO) For Integration Solutions
  • Front-End: Cache Strategies You Should Know
  • Step Into Serverless Computing
  • Mastering Go-Templates in Ansible With Jinja2

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

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

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: