News and Stories

Structr Blog

Axel Morgner
17. September 2014
Announcement, Structr, Neo4j,

Structr 1.0 - the Next-Generation Data-CMS on Neo4j released

We're a bit exhausted but extremlely happy after the launch of Structr 1.0 GA! After four exciting and challenging years, we can now say: This is the best version ever, but it's also just the beginning. We really took the time to put into the release what we thought is important for a 1.0, and thanks to everyone supporting us, especially the great folks of the Structr and Neo4j community and the Neo Technology team! And btw, the new structr.org site already runs on 1.0.0. Axel - for the…

Read more

Christian Morgner
27. June 2014
REST, Structr,

Using the "Range" HTTP header to enable paging of nested collections in REST resources

While working on a customer project, I recently imported a database that was actively used for over 20 years into Structr. Real-life data is often very different from your average testing data, both in size and complexity (unless you put a large amount of effort in the creation of your test data), so I quickly found out that the data editing components in the Structr UI were not able to handle thousands of relationships originating from a single node.In order to fix this problem, we needed a…

Read more

Axel Morgner
16. May 2014
Neo4j,

About the Robustness of Neo4j

TL;DR In my 4-year-experience using and developing apps with it, I can state that Neo4j is a very reliable database with an impressively robust crash recovery, and even in the rare case of invalid records, you can easily fix it.The DetailsThis is a topic I wanted to blog about for a long time. I started playing around with Neo4j in 2010, shortly after the 1.0 release in Feb. 2010, created first applications and started the development of Structr.The first project, a hotel database site, went…

Read more

Christian Morgner
18. March 2014
Neo4j, Structr,

Automatic property-based schema and inheritance detection in Structr

A little more than two weeks have passed since we introduced the GraphGist importer as our contribution to the Neo4j Graph Gist Challenge. You can read all about that in Axel's previous blog post which you can find here.We received a lot of positive feedback, and many people have since experimented with the new feature, including ourselves of course. But, one thing that was noted by many people who tried to import their existing domain models into Structr, was the lack of type inheritance.So,…

Read more

Axel Morgner
28. February 2014
Neo4j, Structr,

The Structr GraphGist Importer

tl;dr: Our contribution to Neo4j's GraphGist winter challenge: A tool to import and parse a GraphGist and create a schema meta graph for self-describing Neo4j databases in Structr.Here's the full story:Neo4j's GraphGist ChallengeWhen the Neo4j team announced their recent GraphGist challenge we asked ourselves "what can we contribute?". As very committed, long-term Neo4j community members, we really wanted to add something cool and non-trivial.In the beginning, we had no real idea what to do.…

Read more

Axel Morgner
10. December 2013

Neo4j Write Throughput on Linux ext4 Filesystems

Do you experience poor write performance with Neo4j on your Linux box, especially when it comes to small transactions?I did, and after some investigations, I could increase write performance by a factor of 15-17x.To find out what caused the poor performance I created a test which basically measures the creation of a node, a relationship and some properties.The system is a standard PC, Core i7 2.93 GHz, 8 GB RAM, Linux kernel 3.8, ext4 filesystem on two partitions, HDDs are ST31500341AS (Seagate…

Read more

Axel Morgner
22. November 2013
Structr, CMS,

Some Benchmarks

Recently, we made some changes in the backend. See this forum post for more details:https://groups.google.com/forum/#!topic/structr/CHQx5e7vTVgEarly BenchmarksIn order to detect possible impacts on performance before release 1.0, we did some benchmarking, and here are the results:As you can see, the current stable release 0.8.2 is pretty fast. We used the Bootstrap Jumbotron Template for our tests, no caching enabled.Speed DropWith the latest backend changes applied, speed dropped by almost…

Read more

Axel Morgner
16. November 2013

Release 0.8.2

We're happy to announce the new release 0.8.2 of Structr! Perhaps it should have been better labeled 0.9, as we included some new features, and it's built on Neo4j 1.9.5.But until 1.0, it's difficult to find the right version semantics. Starting with 1.0 which will be out this year, we'll use semantic version (http://semver.org/).Available on Maven CentralGood news for anyone using Structr components in an own project: For the first time, all artifacts are available on maven central:…

Read more

Axel Morgner
08. October 2013
Conference,

GraphConnect San Francisco

Back at home, Christian and I are full of energy, still impressed by all those positive impressions that hit us at GraphConnect 2013 in San Francisco. Time to write down some observations and thoughts.GraphConnect ConferenceNot only has GraphConnect evolved from being a (quite big) satellite of the QCon San Francisco in 2012 to a 400+ attendees standalone conference, it has become a relevant tech event in the silicon valley and beyond.And despite from being a well-organized conference,…

Read more

Axel Morgner
23. September 2013
Programming,

Jerry vs. Jsoup

Tonight, I added a new feature to Structr to enable content syndication. You can now fetch content from any URL and integrate it into Structr pages, anywhere (even as part of any html attribute).Not very innovative at first sight, but it's of course important for a CMS, enabling real content syndication.But that's not the point of this blog post. Technically, for content syndication you need to make an HTTP request to a remote URL, get the content and either display it unfiltered, or decide…

Read more