What is Gemini?

6,827 views
Skip to first unread message

Adis Corovic

unread,
Apr 25, 2013, 7:55:57 AM4/25/13
to framework-...@googlegroups.com
Hi,

I have read in the first benchmark that you jave build Gemini, your own Web Framework?
Can you given any information of this framework? Language, Architecture :-) etc..
Pretty curious about it :-)

Thanks

Brian Hauer

unread,
Apr 25, 2013, 11:38:32 AM4/25/13
to framework-...@googlegroups.com
Gemini is a Java Servlet-based framework that we have developed and maintained internally for the past 13+ years.  We do web development and consulting, and today we happily use a variety of platforms and frameworks.  But as you might imagine, in 2000 the selection of web frameworks was, to put it mildly, disappointing.  In the Java space, the predominant option in that era was Struts, which did not appeal to us. We wanted something simpler and ended up building what we wanted.

Gemini has to-date been used on projects that we initiate, so the limited and informal documentation is sufficient.  Given the limited audience, we've enjoyed the flexibility to add and remove components at will.  For example, we wanted to replace JSP, so there was a brief discussion, and we decided to adopt Mustache.  The friction level is very low because the need to support legacy applications is narrow compared to an open source framework, something with a large user base.

When we started this effort to compare the performance of web application frameworks, the first implementation of the tests that we wrote was in Gemini.  After all, we wanted to collect this information to give us data to reference when speaking with clients about their projects' technical options.  For example, we wanted to be able to better answer a start-up client's questions about scale pain if they are choosing between, say, PHP, Ruby, and Java.

When we decided to share our findings, we debated whether to include Gemini in the results, knowing that it was perhaps unfair to include a closed-source framework that no readers would recognize.  But on the other hand, we wanted to be able to reference the charts in our ongoing discussions.  Plus, admittedly, we were proud to see it do relatively well.  So we left it in and simply ask that readers either ignore it or consider it a stand-in for a similar small-audience Java framework.

We have been asked whether this frameworks benchmarks project was a prelude to open sourcing Gemini.  It was not.  For a few years now, we've been on the fence about open sourcing it, but have refrained because we do not feel we have the personnel bandwidth necessary to give an open source project the attention it deserves.  Nevertheless, questions such as yours are giving us reason to reconsider.  If we did so, we still don’t have the time to shepherd it and to answer support questions if people try it out.  The chief value in open sourcing might be fairness from the context of the benchmarks project.

Some high-level architectural notes and features:
  • MVC using a custom entities and relationships data model, request handlers for control, and Mustache for views.  Views are only recently Mustache, they were formerly JSP.
  • Custom lightweight ORM with optional in-memory caching.  Object construction uses ReflectASM.  Entities and relationships are modeled but traversal of relationships is handled by applications (there is no higher-level query language).
  • Custom JDBC connection pool.
  • Custom cluster (built using KryoNet) for distributed cache and other inter-server communications.
  • Performance monitor and administrative notifications.
  • Security features: standard users and groups model; bcrypt password hashing; CSRF countermeasures.
  • Starter site administration user interface: user and group management; cache management; configuration management; performance monitor view; WebSocket log monitoring.
  • Miscellaneous: simple auditing; a task scheduler; logging; a custom JavaScript writer (soon to be deprecated in favor of Jackson); a request simulation interface (allowing applications to be used or controlled without an HTTP layer); outbound e-mail templates and delivery; inbound e-mail handling; form validator library; internationalization/locale support; WebSocket support.
  • Notable dependencies: Guava; Java Mustache; Kryo/KryoNet; ReflectASM; Trove primitive collections.
  • Design-wise, we’ve attempted to ensure that requests are handled with as little need for locking and synchronization as possible.  We make fairly heavy use of immutable data structures and Java’s concurrent data structures.

Adis Corovic

unread,
May 3, 2013, 3:29:03 AM5/3/13
to framework-...@googlegroups.com
Thanks for the details information. Very impressing framework you have made.

Sanjay Chaudhuri

unread,
May 26, 2013, 2:10:38 PM5/26/13
to framework-...@googlegroups.com
Yes indeed a very impressive framework.

Brian, will you be open to open sourcing Gemini with a fine-print stating that "support is not available". For few ones like us can start experimenting and playing with it and can evaluate for production at our "own risk". I lead a technology team for one of the major giants and always get some bandwidth to "try" things out adopt if we feel comfortable. Some of the recent efforts in consideration had been bonecp, thymeleaf, etc.

Thanks

Sanjay

Marty Poulin

unread,
Sep 13, 2013, 5:07:17 PM9/13/13
to framework-...@googlegroups.com
Hi Brian,

I found the reverence to Gemini a it a bit confusing as well since there is another web container of the same name http://eclipse.org/gemini/

Perhaps you could prefix Gemini with TechEmpower in results so that we know it your custom solution?

Also if platforms were to link directly to their home pages it would also help eliminate some confusion.

-Marty

Brian Hauer

unread,
Sep 13, 2013, 6:40:07 PM9/13/13
to framework-...@googlegroups.com
Hi Marty,

Sorry for the confusion!  I'm not sure what we can do to remove the confusion in the short-term, but for the time being you can get to each framework's home page or GitHub repository via the Environment page:

http://www.techempower.com/benchmarks/#section=environment

Greg Saunders

unread,
Dec 19, 2013, 10:59:22 PM12/19/13
to framework-...@googlegroups.com
I may have posted this wrong ealier... 

Is there any new news on whether Gemini will become open sourced?

Thanks,

Greg

Brian Hauer

unread,
Dec 20, 2013, 2:30:01 PM12/20/13
to framework-...@googlegroups.com
Sorry, no progress to report just yet.  I have it on the calendar to try to move this along more after the new year.

Nano Goga

unread,
Jan 17, 2014, 2:38:19 PM1/17/14
to framework-...@googlegroups.com
Hi Brian,

Is now 2014, since i discover your website, i check every day, amazing website and project.

I also was searching about the Gemini Framework, search like a crazy until i see this thread, so i join to the request you put Gemini under open source.

Would be amazing try it and off course, try to contribute to the project him self.

Any way, thanks for your work, hope you consider our request.

BTW, Happy new year, blessings.

Nano.

Brian Hauer

unread,
Jan 20, 2014, 12:57:21 PM1/20/14
to framework-...@googlegroups.com
Hi Nano,

Thanks for the interest in the framework benchmarks project and the kind words!

As for Gemini, we still intend to open source it in the future, but there remains some effort necessary to do that.  An important caution: we do not have the manpower to support its usage by third-parties.  So once it is open source, you would be free to use it, but it would come with no support, so I would not recommend its use unless no-support is your kind of gig.  Nevertheless, we think open sourcing it is the right thing to do and it certainly would not hurt to have some additional eyes looking over the code (assuming there is interest in doing so).

Nano Goga

unread,
Jan 20, 2014, 3:48:49 PM1/20/14
to framework-...@googlegroups.com
Hi Brian,

Thanks for your answer.

About the support thats one of the beauty of open source projects, more people involved means more improvements and more contributors, so all people later involved can contribute for create documentation and needed stuff.

Anyway, thanks for take in count our request, i really appreciate.

Nano.

Nache

unread,
Feb 13, 2014, 9:50:54 AM2/13/14
to framework-...@googlegroups.com
Hello,

I also join to the request of Gemini open source! Hope in Round9 Brian have a suprise for us! Thanks for your work.
Reply all
Reply to author
Forward
0 new messages