NoSQL Design Considerations and Lessons Learned

Posted by on July 29, 2015

At Rivet Logic, we’ve always been big believers and adopters of NoSQL database technologies such as MongoDB. Now, leading organizations worldwide are using these technologies to create data-driven solutions to help them gain valuable insight into their business and customers. However, selecting a new technology can turn into an over engineered process of check boxes and tradeoffs. In a recent webinar, we shared our experiences, thought processes and lessons learned building apps on NoSQL databases.

The Database Debate

The database debate is never ending, where each type of database has its own pros and cons. Amongst the multitude of databases, some of the top technologies we’ve seen out in the marketing include:

  1. MongoDB – Document database
  2. Neo4j – Graph based relationship
  3. Riak – Key value data store
  4. Cassandra – Wide column database

Thinking Non-Relational

When it comes to NoSQL databases, it’s important to think non-relational. With NoSQL databases, there’s no SQL query language or joins. It also doesn’t serve as a drop-in replacement for Relational Databases, as they are two completely different approaches to storing and accessing data.

Another key component to consider is normalized vs. denormalized data. Whereas data is normalized in relational databases, it’s not a necessity or important design consideration for NoSQL databases. In addition, you can’t use the same tools, although that’s improving and technology companies are heavily investing in making their tools integrate with various database technologies. Lastly, you need to understand your data access patterns, and what it looks like from the application level down to the DB.


Also keep in mind your expectations and make sure they’re realistic. Whereas the Relational model is over 30 years old, the NoSQL model is much younger at approximately 7 years, and enterprise adoption occurring within the last 5 years. Given the differences in maturity, NoSQL tools aren’t going to have the same level of maturity as those of Relational DB’s.

When evaluating new DB technologies, you need to understand the tradeoffs and what you’re willing to give up – whether it be data consistency, availability, or other features core to the DB – and determine if the benefits outweigh the tradeoffs. And all these DB’s aren’t created equally – they’re built off of different models for data store and access, use different language – which all require a ramp up.

In addition, keep in mind that scale and speed are all relative to your needs. Understanding all of these factors in the front end will help you make the right decision for the near and long term.

Questions to Ask Yourself

If you’re trying to determine if NoSQL would be a good fit for a new application you’re designing, here are some questions to ask yourself:

  1. Will the requirements evolve? Most likely they will, rarely are all requirements provided upfront.
  2. Do I understand the tradeoffs? Understand your must have vs. like to have.
  3. What are the expectations of the data and patterns? Read vs. write, and how you handle analytics (understand operational vs. analytics DB and where the overlap is)
  4. Build vs. Buy behavior? Understand what you’re working with internally and that changing internal culture is a process
  5. Is the ops team on board? When introducing new DB technologies, it’s much easier when the ops team is on board to make sure the tools are properly optimized.

Schema Design Tidbits

Schema is one the most critical things to understand when designing applications for these new databases. Ultimately the data access patterns should drive your design. We’ll use MongoDB and Cassandra as examples as they’re leading NoSQL databases with different models.

When designing your schema for MongoDB, it’s important to balance your app needs, performance and data retrieval. Your schema doesn’t have to be defined day 1, which is a benefit of MongoDB’s flexible schema. MongoDB also contains collections, which are similar to tables in relational DB’s, where documents are stored. However, the collections don’t enforce structure. In addition, you have the option of embedding data within a document, which depending on your use case, could be highly recommended.

Another technology to think about is Cassandra, a wide column database where you model around your queries. By understanding the access patterns, and the types of questions your users are asking the DB, then you can design your schema to be more accurate. You also want to distribute data evenly across nodes. Lastly, you want to minimize partition (groups of rows that share the same key) reads.

Architecture Examples

MongoDB has a primary-secondary architecture, where the secondary would become the primary if it ever failed, resulting in the notion of never having a DB offline. There are also rights, consistency, and durability, with primaries replicating to the secondaries. So in this model, the database is always available, where data is consistent and replicated across nodes, all performed in the backend by MongoDB. In terms of scalability, you’re scaling horizontally, with nodes being added as you go, which introduces a new concept of sharding, involving how data dynamically scales as the app grows.

On the other hand, Cassandra has a ring-based architecture, where data is distributed across nodes, similar to MongoDB’s sharding. There are similar patterns, but implemented differently within technologies. The diagram below illustrates architectural examples of MongoDB and Cassandra. All of these can be distributed globally, with dynamic scalability, the benefit being you can add nodes effortlessly as you grow.

NoSQL Data Solution Examples

Some of the NoSQL solutions we’ve recently built include:

Data Hub (aka 360 view, omni-channel) – A collection of various data sources pooled into a central location (in this case we used MongoDB), where use cases are built around the data. This enables new business units to access data they might not previously have access to, empowering them to build new products, understand how other teams operate, and ultimately lead to new revenue generating opportunities and improved processes across the organization

User Generated Content (UGC) & Analytics – Storing UGC sessions (e.g. blog comments and shares) that need to be stored and analyzed in the backend. A lot of times the Document model makes sense for this type of solution. However, as technologists continue to increase their NoSQL skill sets, there’s going to be an increasing amount of overlap of similar uses cases being built across various NoSQL DB types.

User Data Management – Also known as Profile Management, and storing information about the user, what they recently viewed, products bought, etc. With a Document model, the flexibility really becomes powerful to evolve the application as you can add attributes as you go, without the need to have all requirements defined out of the gate.

Lessons Learned

When talking about successful deployments, some of the lessons learned we’ve noticed include:

  1. Schema design is an ongoing process – From a Data Hub perspective, defining that “golden record” is not always necessary, as long as you define consistent fields that can be applied everywhere.
  2. Optimization is a team effort – It’s not just the developer’s job to optimize the schema, just like it’s not just the Ops team’s job to make sure the DB is always on. NoSQL is going to give you tunability across these, and the best performance and results
  3. Test your shard keys (MongoDB) – If sharding is a new concept for you, make sure you do your homework, understand and validate with someone that knows the DB very well.
  4. Don’t skimp on testing and use production data – Don’t always assume that the outcome is going to be the same in production.
  5. Shared resources will impact performance – Keep in mind if you’re deploying in the cloud that shared resources will impact distributed systems. This is where working with your Ops team will really help and eliminate frustrations.
  6. Understand what tools are available and where they are in maturity – Don’t assume existing tools (reporting, security, monitoring, etc.) will work in the same capacity as with Relational DB’s, and understand the maturity of the integration.
  7. Don’t get lost in the hype – Do your homework.
  8. Enable the “data consumer” – Enable the person that’s going to interact with the DB (e.g. data analyst) to make them comfortable working with the data.
  9. JSON is beautiful

To summarize, education will eliminate hesitation, and don’t get lost in the marketing fluff. Get Ops involved, the earlier and more often you work with your Ops team, the easier and more successful your application and your experience with these technologies will be. Lastly, keep in mind that these are just DB tools, so you’ll still need to build a front end.

Click here to see a recording of the webinar.

Click here for the webinar slides.

5 Reasons You Should Consider Building a Native Mobile App

Posted by on June 12, 2015

The buzz around mobile has been around for a while and isn’t going anywhere, and with good reason. When over 90% of adults have their mobile phone within arm’s reach 24/7, it’s apparent that as a society, we’ve become largely dependent on our mobile devices. I bet the last time you forgot your phone at home, you felt like a part of you was missing, didn’t you? Well, you’re not alone.

With the population spending more and more time on their mobile devices, businesses can no longer afford to ignore their mobile experience. With an unlimited amount of information at their fingertips, consumers expect the ability to quickly access whatever info they need at that moment. And that’s not just limited to consumers. In B2B environments, business users are researching products and services on their smartphones, and performing tasks that would typically be done on desktops.

mobileapp-bannerleftThis requires a different approach to strategizing for mobile, a mobile-first approach. The question is no longer “should I build a responsive site or a native mobile app?” It’s not a matter of one versus the other. Businesses today need to have a mobile friendly website, period. It’s what your audience expects.

The question now becomes, “is mobile web enough?” To bring your customer engagement to the next level, it’s a good idea to consider a native mobile app. If you’re still not convinced, here are five advantages of mobile apps that makes the UX superior:

  1. Better handling of touch, gestures, and swipes – Side to side swiping, while very popular on mobile apps and desktop sites, doesn’t work as well on mobile websites
  2. Faster and more responsive – While mobile sites download the experience and data for each page through verbose HTML, mobile apps already contain most of the experience definition and only need to download the data
  3. Easy to continue where you left off – Mobile apps allow users to carry on tasks that span over long periods of time without having to log back in each time
  4. Tighter device integration – Mobile apps are much better equipped at handling features like geo-location, camera, and push notifications. While HTML5 is capable of supporting some of these device integrations, it’s not to the same degree and is often a power drainer
  5. Integration with other apps – It’s much easier and seamless to launch from one app to another app, than from an app to a mobile web app (take using your Facebook login to login to Pinterest for example)

Well, there you have it, five advantages that native mobile apps have over their mobile web counterparts. Of course, this doesn’t mean everyone should go and replace all their web apps with native apps. Each business still needs to determine what works best for them. But this provides some areas for consideration the next time you’re trying to decide whether or not to build that mobile app!


A Pulse on the Cassandra Community

Posted by on April 08, 2015


Standing Room Only

I recently attended a Cassandra Day community event. If the crowd was any indication of the install base, I would have to say the interest is strong to quite strong. The weather was miserable in Atlanta and people still managed to show up!

You can spend a lot of time reading articles and various ‘expert’ opinions across the technology world on what is the latest and greatest tool. In addition to reading I would encourage you to collect your own data points and GO TO a community event. You’re able to feel the energy and see first hand the momentum of a product – or lack thereof. Vendor pitches are kept to a minimum and the content tends to be well thought out.

This was my first Cassandra dedicated event but not my first exposure to the Database. The schedule looked typical from the technical side and the morning even included a ‘business’ session that included use-case examples. I made an effort to see a little of both.

The business track was kicked off with your traditional endless amounts of data sales pitches and an introduction to DataStax, the commercial company that offers support and tooling for Cassandra. Standard vendor conference stuff.

So who is using Cassandra? I was pleasantly surprised to hear and learn about companies other than Netflix. Don’t interpret that negatively. Netflix is a great spokesperson for the Cassandra community and helped launch them towards the top of the NoSQL leaderboard. Netflix’s scale is impressive but there is nothing wrong with a little variety. Ask and you shall receive. Target, Safeway and Kroger were all presented as current users.

I found Safeway’s Cassandra use most interesting. They are building an app that takes your shopping list, locates the nearest store and maps product-to-aisle within that store. Cool to see grocery chains embrace technology and try and solve a problem every person has struggled with at one point or another. During the presentation one question stood out in my mind – Why no Mongo? Geolocation has been a very strong use-case for MongoDB since the early days of the product. Unfortunately, the overview was light and the entire story was not shared – but it makes me wonder if Cassandra’s closing the gap on MongoDB faster than what the market perceives.

After DataStax we heard from Asurion (you know, the cell phone insurance folks – you lose or break your phone and they send you a new one for $200), who shared their journey to Cassandra. They followed a typical path through NoSQL enlightenment. RDBMS was failing on scale, along with other things, and they needed a fix.

Asurion’s story: step 1, Postgres to MongoDB. Why didn’t that work for them? It boiled down to lack of understanding MongoDB and assuming it was a drop-in replacement for RDBMS(applying the same relational principles to NoSQL and expecting a better outcome), cites the VP at Asurion. Operational tooling for MongoDB was also another reason why it wasn’t selected. Lack of tooling created a broader challenge when it came to scaling internal resources and their ability to use the tool.

But why Cassandra? DataStax’s operational tooling, analytics strength and scaling capabilities were all mentioned as reasons why – and why they continue to build on Cassandra. I wouldn’t get hung up on the analytics and scale comments since these mean different things to different people. Takeaway, DataStax’s focus on operational tooling continues to be a valuable strategy in gaining new customers.

If MongoDB was evaluated second would it have prevailed? Maybe, Maybe Not.

Data Modeling 101 was the most memorable session for me. When you walk into a large conference room and there are no available seats – you know you’re in for a good session. I’m not exaggerating – there weren’t even the awkward middle seats that people leave open to avoid sitting close to strangers. (see picture at the top)

The speaker was patient and managed the large crowd well. There were plenty of relational modeling to Cassandra modeling references throughout his session.

Now for the recap. So what did I learn?

  • Cassandra’s interest continues to grow
  • DataStax is growing (employees and customers)
  • Hadoop compatibility is top of mind

Cassandra still has ground to catch on MongoDB if you follow db.engines rankings. DataStax growing is good for the community and product evolution. When businesses bet their livelihood on an Apache licensed open source product the community will benefit more often than not. When exploring a new technology the ecosystem can be a great indicator of the current health but DON’T just focus on quantity. The ecosystem is a good indicator of if the technology will a) last and b) prosper. Finally, Hadoop compatibility will continue to be an important piece of the NoSQL conversation and DataStax’s seems to be recognizing that and making it a priority.

It was awesome to see the enthusiasm behind Cassandra in person. NoSQL concepts and products are still new to a lot of people. It is going to take time to make a dent in the RDBMS world but it’s happening. As tools like Cassandra and MongoDB continue to put pressure on the relational databases, users will win. Developers will continue to push database technologies to the limits – therefore forcing products to evolve for the good or disappear.

Utilizing the Employee Experience Maturity Model to Optimize Your Enterprise Collaboration

Posted by on February 19, 2015

What comes to mind when you think of an intranet? In theory, intranets should deliver results in real time. HR should be able to easily publish new policies and other documents, marketing should be able to easily find an inside expert when researching a new technology, and sales should be able to quickly get help on a new presentation. But in reality, this usually isn’t the case.

Legacy intranets are plagued with information that can’t be optimally leveraged –1) outdated old documents, 2) static content instead of useful conversations that draw out important ideas, 3) half-baked people directories instead of rich user profiles, 4) irrelevant company news that doesn’t help get our job done, and 5) lack of mobile access.

Unfortunately, due to these issues, many organizations consider their intranet the place where information goes to die. In fact, a recent survey showed that while a vast majority of organizations have had an intranet for over five years, and over 70% also utilize social business tools (e.g. wikis, forums, messaging, etc.), almost 3 out of 4 would rate their tools as BAD.

Part of this can be attributed to the strategy and approach. Just because you have an intranet and social tools, doesn’t mean it’s a social intranet solution. Organizations need a fresh approach to this problem.

Social Intranet Strategy & Tools

First, a social intranet is multi-faceted. In addition to supporting social collaboration, it needs to support the people and their profiles, user groups, tasks, files and documents, departments, projects, and communities with an organization. An intranet must also integrate easily with other enterprise systems – ERP, CRM, WCM, cloud services, and even outside social networks. In addition, a social intranet should also support the development of custom apps as necessary.

In determining a social intranet strategy, we’ve developed the employee experience maturity model to help organizations assess their current state based on employee behaviors, and establish new targets based on corporate strategy.

Employee Experience Maturity Model

The Employee Experience Maturity Model is comprised of four dimensions – Process, Collaboration, Integration, and Content. Each can be ranked along its level of maturity, from Low to High. Based on actual behaviors and not tool features, you can measure each dimension and plot your current overall maturity level.


Together, these four measurements can provide an overview of how mature an organization is at delivering effective and productive digital experiences for its employees.

Content Maturity

Organizations that are high in Content Maturity typically allow their employees to own all content, making them both content producers and consumers. They also support all media types (documents, images, video, audio, etc.), and content is easily accessible by search and faceted navigation. In addition, content is published across multiple channels, with the ability for social commentary, and personalized to individual users, teams, and departments.

On the other hand, those low in Content Maturity tend to have top-down, one way communication, where documents and textual information predominates, with the use of ad-hoc repositories and no way of indexing, tracking or searching content.

Collaboration Maturity

On the Collaboration Maturity scale, companies that rank high tend to easily support collaboration both inside and outside the organization. In addition, a variety of social and collaboration tools are used, including collaborative work spaces, comprehensive user profiles, all with social content weaved throughout and the ability to easily share and subscribe.

On the low end of the scale, email and shared drives are the dominant tools used, along with other ad-hoc tools. The people directory is incomplete, and there are no social features, such as the ability to follow people and teams or comment and rate content.

Integration Maturity

On the Integration Maturity scale, those that rank high generally use standards-based, open architecture platforms that can easily be integrated with. In addition, enterprise applications are used in intranet/portal solutions, where capabilities and interactions are exposed as services. These organizations also utilize Single Sign-On (SSO) across all applications used, along with comprehensive user profiles.

Conversely, businesses on the low end use standalone apps with separate logins, often on proprietary closed systems, resulting in silo’d repositories of content, data, and people. There’s also no employees access to customized dashboards to meet their specific needs.

Process Maturity

Businesses than are high in Process Maturity have processes embedded in their intranet and other applications, which are monitored and managed by workflows that work seamlessly across applications. In addition, analytics are used for process optimization.

Those on the low end of the scale employ ad-hoc manual processes that are only available through desktop access and often not fully documented.

Strategizing With the Maturity Model

While the Employee Experience Maturity Model provides a way to assess where your organization stands, it’s important to keep in mind that a “high” rating on every dimension isn’t required, or even desired. Organizations need to choose their targets based on individual corporate strategies.

For example, companies that focus on innovation, such as startups, may be high on Collaboration and Content, but rank lower on Process. On the other hand, a cost leader may rank high on Integration and Process, but lower on Collaboration. Even more, organizations that want to maintain a singular voice would likely rank high on Collaboration and Process, but lower on Content. Determining your organization’s priorities and choosing your targets is an important part of your overall strategy.

Click here to learn more about the Employee Experience Maturity Model.

Vitalize Your Content in 2015

Posted by on January 13, 2015

revitalize-conceptAt the beginning of every year, the web is flooded with blog posts, articles, and infographics with predictions and trends of what’s in store for the year ahead.

This year, there are a few key trends that seem to consistently appear in every prediction, and they all seem to revolve around mobile, social, personalization/targeting, and analytics.

Not surprisingly, with mobile on an unrelenting rise, organizations large and small are shifting towards a mobile first strategy. And as we’re surrounded by more and more digital content, organizations need to find creative ways to grab users’ attentions, through delivery of targeted and personalized content, and with social features that encourage audience participation.

In a recently published white paper, Vitalizing Content to Drive Social Customer Engagement, we introduce the concept of Vital Content, a new content class born from connecting content, which ultimately enables a deeper level of user engagement.

Traditional Social Enablement Limitations

In this age of the customer, consumers expect their online experiences to be seamless and omni-channel, filled with consistent and contextual data, all the while engaging them through bi-directional conversations.

Traditionally social content and social enablement has been handled with a collection of individual platforms, perhaps one for reviews, another for discussion forums, yet another for ratings and so on. Having content stuck in such silos limits the value we can expect to derive and deliver from our social platforms. While traditional platforms have helped facilitate conversations and drive greater engagement with customers, these individual channels can often seem unrelated and disjoint.

 “Vital Content” and Its Production Challenges

Motivating engagement and participation in the content lifecycle establishes a lasting and valuable relationship with your customers. To build this kind of deep relationship with your customers you must give them a voice and provide them with content and functionality that is vital to their needs. The answer can be found in a combination of process and technology designed to personalize the experience, gather insight, and surface connected content.

This process produces a new content class — Vital Content — resulting from content creators and consumers building a deeper relationship as each learns more about the other. The outcome of this process keeps users actively engaged, connected longer, and produces a more meaningful experience.

However, traditional solutions fail to build an ongoing relationship with the audience because they fail to keep the right content in front of the right people and encourage engagement that breathes new life into the content. Users today want, and expect, a personalized experience that is consistent and contextually relevant and that spans across their entire customer journey. They shouldn’t have to re-educate at each engagement event on their likes, dislikes or previous history. Instead, they should be presented with relevant content that addresses their needs and triggers new engagement. The process of building a relationship with your user or customer is ongoing, and technology should enable that relationship to prosper.

Building Relationships Through Metadata

So how is this accomplished? Since content, comments, ratings and other social content are essentially the same, by connecting them with metadata, it’s possible to build relationships between them, pulling them out of their traditional silos. Through the application of metadata such as tagging, content curators and end users are able to create relationships between any piece of content or commentary, regardless of the source. These cross-referenced pieces can then be dynamically embedded, restructured and linked together in endless configurations.

With these ends in mind, Crafter Software has created Crafter Social, an innovative platform leveraging MongoDB, for creating Vital Content to help organizations maximize their customer engagement and the strength of their customer relationships. Crafter Social enables an increased level of engagement with the user while enhancing the overall experience. Furthermore, requirements will evolve as the user’s engagement increases over time. Crafter Social provides a flexible approach built on a system of relationships, and as these relationships grow, it provides the tools to take action on new data types and sources.

Click here to read more and download the full white paper.

Implementing an SEO Strategy for Your Liferay Websites

Posted by on November 10, 2014

The internet has revolutionized the way companies market their products and services today, and one of the biggest changes is how businesses are leveraging their websites to market their online presence. In a competitive digital world, the key to success is reaching potential customers and driving them to your website.

In a webinar earlier this year, we discussed how Search Engine Optimization (SEO) has become a top priority in today’s growing world of technology reliance on web-based platforms, and how Liferay’s newest features can be used to implement SEO-friendly dynamic pages, illustrated by a real world customer example.

What is SEO?

For those who aren’t familiar with Search Engine Optimization (SEO), it’s the process of affecting the visibility of a website or web page in a search engine’s “natural” or un-paid “organic” search results. Unlike paid search results, like Google Adwords, where you’re essentially paying for your URL’s to display in a favorable position, SEO involves the natural algorithms that sort the results.

Organizations are always trying various SEO techniques to increase high value traffic to their sites from search engines such as Google, Yahoo, and Bing. Common SEO methods include getting indexed, controlling the crawl, and increasing prominence. It’s important that your page is highly relevant to the keywords that users would use in their search for that page.

SEO Strategy Considerations

When determining an SEO strategy, there are several important factors to consider:

Controlling Meta Information

First and foremost, it’s important to ensure that all of the properties being used to describe your page are relevant and descriptive of the page’s content. HTML pages contain metadata – title, meta tags, keywords, etc. – and search engines look at this metadata through sophisticated algorithms to determine its value, which is then used to score the page.

Liferay allows users to control the metadata for each page, along with the ability for localization. For example, the US page can have metadata in English and a Chinese page could have the metadata in Mandarin in order to maximize the score.

Site Map Protocol

Another feature that search engines provide is the ability to show searching users a site map of the website directly in the search result page to help them find what they’re looking for faster. For example, if you searched AT&T in Google, you will see search results for AT&T along with the site map, as shown in the image below. Liferay has an out-of-the-box capability of pushing your sitemap out to Google and Yahoo using the Site Map Protocol.

Friendly URLs

A good SEO strategy also involves the use of friendly URLs. Your URL patterns need to be descriptive of the content. Out-of-the-box, Liferay URLs in many cases aren’t good enough as they contain a lot of URL parameters. However, Liferay allows for the creation of custom friendly URLs through the Friendly URL Mapper to solve the problem.

SEO Friendly Sliders/Carousels

Lastly, many organizations struggle with the issue of SEO friendly sliders and carousels. In a nutshell, a page rendering carousels should only have the content of the relevant slide instead of all the slides. When users perform a search, the search engine crawls through each slide and indexes it as part of the same page. The challenge is tricking the search engine into viewing each slide as a separate page, while maintaining the animation.

For example, if a user searches for something that lies in slide 3 of a carousel, and the search results take them to slide 1 where the information isn’t relevant to what they were looking for, it can cause confusion and frustration. It’s easy to see why this is something companies want to avoid as it can result in a poor user experience that could deter the user from visiting the site again.

The solution lies in the URL. By creating unique URLs for each slide of the carousel, search engines can treat and index them as separate pages, making them SEO friendly.

To maintain the proper carousel transitions between slides, the slides are linked so that a simple AJAX call back to the server allows users to view all the carousel slides. In addition, all of the carousel slides are managed in one Liferay Web content article. This way, only one slide in the carousel is rendered during rendering, preventing any false positives when search engines are indexing the page. With this solution, you can still have carousels without sacrificing the SEO friendliness of a site.

Real World Customer Example – Sensus

Sensus is a global enterprise in utility infrastructure systems and resource conservation. For its global website, products are organized in a way as illustrated in the diagram below – where contained multiple country sites, each with multiple divisions, and those with their own product lines, each with multiple products.

However, in reality, the associations between these entities were not as cleanly hierarchical as the diagram implies. In fact, all the entities could be associated with one another, as shown in the following diagram.

This presented the biggest challenge as it meant that a truly hierarchical representation for the content behind Divisions, Product Lines, Products and Solutions could not be created. And from an SEO perspective, all this content still needed to be searchable, and needed to be in a hierarchy that search engines understood.

Templates and Page Types Are the Answer

To solve this problem, we leveraged templates, which helped content managers organize their content in a way where it’s reusable, without losing the site map and structure of the content.

Liferay’s built-in rich WCM capability allowed us to divide a page into building blocks. For example, a product line page would be divided into the following sections – overview, products, and associated solutions.

We also created page types, where a single Liferay page can display as many articles as necessary for a particular page type. For Sensus, we had page types for Division, Product Line, and Product.

What about SEO?

When addressing SEO, the answer was in the method of content delivery. We needed to make sure that content authoring and delivery were decoupled to maintain SEO friendliness of each country’s site.

We achieved this through a process where content authors didn’t touch the Liferay pages. Instead, all they had to do was create Web forms and tag each article using Liferay categories, in turn capturing the hierarchy. That way, the article can surface in various places throughout the site based on how it’s categorized, allowing content authors to maintain a single source of truth for the content and also the hierarchy in the information architecture on the delivery side. Now when search engines scan through the pages and come up with a searchable index, the structure makes sense and there’s no loss of content organization.

As a result of this solution that enables the creation of a global website with shared content, we also encountered some SEO challenges that were specific to Liferay – HTML Titles and Breadcrumbs. As discussed earlier, search engines expect a page’s HTML title to be relevant to what’s on the page. However, since we’re using page types, where each page is displaying multiple products, we couldn’t have the same title for each product page, and Liferay out-of-the-box controls the page title based on the page type. Similarly, Liferay’s Breadcrumb capability had to show hierarchy of the content.

Both of these challenges were solved through a plug-in that enabled us to intercept the HTML Title and Breadcrumb generation code and replace it with dynamic logic so that it made sense for search engines.

In summary, SEO is something that’s becoming increasingly important for all public facing sites to focus on. A key SEO success factor lies in the strategy that must be defined early on in the planning phases of a project to ensure maximum SEO friendliness, and Liferay as a CMS provides a great tool for SEO that can satisfy almost all requirements.

Liferay Symposium 2014 Talks Audience Engagement

Posted by on September 10, 2014

Liferay North America Symposium 2014

The fall conference season is officially upon us! In less than a month, Liferay is bringing their annual North America Symposium to the east coast, held in Boston, MA from October 5-7, 2014.

This year’s Liferay NAS will focus on various ways of engaging with your audience, with an agenda packed full of hot topics around mobile, social, the best of the latest Liferay release, and best practices for upgrading. Attendees can also expect to dig deep into Liferay Portal 6.2, see new official plugins for Liferay Social Office, Sharepoint, Google Drive, and Google Login, along with a first chance to see the product roadmap for Liferay 7.0 and beyond.

Still not convinced? Here are the TOP 5 REASONS for going!

  1. Hands-on Workshops & In-depth Technical Sessions 
    Learn directly from Liferay masterminds on such hot topics as content targeting, single page architecture, social, and responsive design. Further maximize your investment by attending a post-symposium training.
  2. Meaningful Opportunities for Collaboration 
    Take advantage of Speed Consulting appointments with Liferay’s senior consultants. Meet face-to-face with other Liferay users and enthusiasts.
  3. Real World Enterprise Client Case Studies 
    Gain insight into enterprise productivity, mobility, and web engagement for the future. Learn how Liferay is providing tangible business values and solutions to our key clients.
  4. Access to a Community of Experts 
    Connect with innovative sponsors and exhibitors face-to-face in a dedicated space, and learn more about their enterprise-ready solutions.
  5. A Sunday Spectacular! 
    Kick off the first day with an exhilarating 5K run/walk along the Charles River Esplanade. Liferay will donate $100 to Solidarity and/or Living Water for every participant. Top off the night with some of Boston’s finest bites & beers at the evening welcome reception.

Rivet Logic will again be participating as a Platinum Sponsor and presenting a customer case study featuring IEEE (the world’s largest professional association for the advancement of technology), to discuss how they built an innovative, enterprise intranet solution on the Liferay platform.

We hope to see you in Boston!

Case Study: Award-Winning Cloud Services and Communications Company Drives More Sales Leads with Crafter CMS

Posted by on August 01, 2014

The internet plays a huge influential role in our daily purchasing decisions, most of the time without us even noticing as it’s become so second nature. Whether it’s checking out a restaurant menu before trying it out, checking to see if a product is available at a specific store, or seeing if a business’s solutions can benefit you, a company’s online presence can drastically affect the impression it leaves on a visitor, making it crucial to have a site that delivers an engaging and lasting experience.

In our latest case study published earlier this year, we take a detailed look at how a leading cloud services and communications company is leveraging a Crafter CMS solution to deliver a dynamic, engaging Web experience while increasing site traffic and sales leads.

Rebranding Effort For a Cloud Services and Communications Company Leads to a New Dynamic Website for a Higher Quality Customer Web Experience

As a leading, award-winning cloud and communications services provider, this organization serves as the technology ally for small and mid-sized businesses by delivering services through their private, high-bandwidth enterprise network and data centers. By shifting the technology burden to the provider, they strive to help their customers save valuable time, money and resources.

Customer service excellence has been a big part of this company’s culture since its inception, making it imperative to maintain a cutting edge Web presence. This customer had recently undergone a corporate rebranding initiative, and as part of the effort, had sought to provide a far more dynamic and engaging Web experience for its users. With these objectives in mind, it was quickly realized that there was a need for a new enterprise-class Web Content Management System (CMS) with the robust functionality to effectively address existing needs, along with the flexibility to tackle any ongoing future requirements.

Unlimited Agility Through Open Source Innovation

Led by the Marketing Department, and working in conjunction with the product development groups along with senior executives, this customer wanted to ensure the new website produced the end result they desired. They knew that with any new Web CMS solution, flexibility was a top priority – flexibility of design, using in-house resources, customization, and adapting to ongoing needs.

As an organization that works with a variety of third party vendors for their projects, this customer saw the benefits of open source when it came to flexibility in choosing future development partners when the need arose to grow the Web application with additional components. So they also sought a content management platform that was open, agile and sported a rich feature set. After evaluating a number of potential products, an integrated solution based on Crafter and Alfresco emerged as a clear choice.

Paving the Way to Serve as a Full Fledged Technology Ally for Its Customers

With the new website, this customer has seen an increase in content production and publishing productivity, and are better able to quickly respond and adapt to the data received from analytics. The dynamic content pages provide a proficient way of cataloguing and repurposing content throughout the site. Since re-launching the site using Crafter CMS, overall website traffic has increased by 9 percent while the number of leads generated have more than doubled that amount.

Click here to read and download the full case study.

Alfresco Software Positioned in the Visionaries Quadrant of the Gartner Magic Quadrant for Enterprise File Synchronization & Sharing

Posted by on July 16, 2014

Many of us are familiar with Alfresco as an Enterprise Content Management (ECM) platform and its robust content management capabilities. And they’re no newbies in the world of Gartner Magic Quadrants as it’s been positioned as a Visionary in the Magic Quadrant for ECM for the past five consecutive years.

However, yesterday marks a first for Alfresco in another Magic Quadrant as Gartner positioned it as a Visionary in the Magic Quadrant for Enterprise File Synchronization & Sharing (EFSS).

According to Gartner, “EFSS refers to a range of on-premises or cloud-based capabilities that enable individuals to synchronize and share documents, photos, videos and files across multiple devices, such as smartphones, tablets and PCs.” Gartner adds that, “Security and collaboration support are critical capabilities of EFSS to address enterprise priorities.”

Fueled by a differentiated hybrid model and open-source DNA, Alfresco Software serves a customer base that requires enterprise-grade content management that works across cloud, mobile, hybrid and on-premise environments.

“EFSS are basic features that any modern ECM system must have,” said Doug Dennerline, Alfresco CEO. “We believe that Alfresco’s vision to offer customers a unique, hybrid approach with built-in file synchronization and sharing capabilities has been validated here.  More importantly, our customers appreciate our open architecture and have the flexibility to customize their solutions to their unique business need.”

In the report, Gartner also predicts: “By 2017, part of the enterprise file synchronization and sharing (EFSS) market will be absorbed into adjacent markets (e.g., collaboration and content management).”

“As Gartner indicates in the report, the shelf life of EFSS as a stand-alone product is short lived. File sync and share is moving to be just another feature within larger enterprise applications,” added Dennerline. “Besides, in our experience, the more highly valued the content, the more likely a customer is to use the Alfresco solution.”

To access the Gartner report, go to:

Building Engaging Customer Experiences Powered by MongoDB

Posted by on July 08, 2014

This spring and summer, the MongoDB Road Show stops in over 20 cities across the country to educate users on how MongoDB can be used to build modern business apps to improve the customer experience and accelerate time to market. Rivet Logic sponsored several of the cities and presented on the topic of building engaging customer experiences with MongoDB, discussing how a modern database can be used to better leverage existing data to derive business value. The next MongoDB Road Show is this Thursday, July 10, in San Francisco!

What Organizations Need

Organizations seeking to build engaging customer experiences on the Web often have a similar set of goals. To start, they want to increase user adoption by providing an engaging experience that brings value to the end-user. This can lead to increased customer retention, allowing organizations to create loyal customers who can then become their own brand ambassadors.

Moreover, organizations want to capitalize on their customers’ and users’ creativity and innovation by seamlessly weaving in the ability to collaborate, interact, and share into every aspect of the user experience. Businesses find the quality of this type of engagement to be particularly beneficial, due to its unpredictability. However, to enhance the value of these interactions, users need a motivator, meaning organizations need to create high quality content that’s personalized and targeted to each user’s needs.

While personas are great and have worked well to capture general types of users, in reality, users think of themselves more as individuals, with evolving interests over time. Organizations are now faced with delivering personalized experiences beyond a persona level and at an individual level.

What’s the Problem?

However, many organizations are having a hard time with this fine-grained personalization, and it’s largely due to the limiting technology they’re working with. IT teams are often faced with seemingly “impractical” features that business teams are requesting.

Organizations today are using separate systems like standalone content apps – blogs, forums, wikis, – commenting engines, traditional databases, and BI tools to enable user interaction and collect and analyze information about them. The quality of user interactions is largely driven by the quality of the user-generated content being collected and analyzed. However, since much of this valuable customer data is silo’d in disparate systems, it’s not allowing businesses to effectively leverage their existing data.

While many have attempted to find workarounds for this, there hasn’t been any real success in creating a coherent rich user interaction data set that brings value to all the delivery use cases available. For example, when a user joins the comment thread of a blog entry, they are unaware of the possibility of a forum thread that is discussing the same topic. In addition, these solutions are typically backed by traditional databases, which requires changing of the infrastructure to accommodate new use cases, posing a challenge.

The fact is, the various types of interactions that exist today are disjointed, resulting in redundancy and little chance of connecting and leveraging them. It’s critical that we make these interactions context-aware, and the only way of effectively doing so is to have a holistic view of all the user-generated content that’s being collected, while also allowing the interactions to cross application boundaries.

Pillars of a Good Solution

Successful solutions that meet these challenges must adhere to the following pillars:

Flexibility – The solution must be implemented using technology agnostic building blocks. Being a certain type of shop (.Net, PHP, Windows, etc.) constrains organizations from using the right tools for the job. Using technology agnostic building blocks as the underlying infrastructure allows organizations to innovate and improve their business without being held back by technology.

Scalability – The solution must be scalable without sacrificing performance. There are many platforms out there that claim to be scalable, but what good is that when scaling means long page load times?

Visibility – It’s also extremely important to be able to know and see the overall picture and have a holistic view of user interactions that isn’t so low-level where it prevents you from seeing what they are doing (as is the case with auditing services).

Insight – Lastly, when you have rich, contextual data available in one place, organizations need to be able to leverage that information, innovate and provide new features, capability, and value to their customers.

Case Study – AT&T Developer Community

Now let’s take a look at how a solution like this might be used in the real world. AT&T is currently undergoing an initiative to build a solution to enhance the user experience of their developer community site. The existing site’s collaboration tools are traditional in nature (i.e. blogs and forums), where user engagement is fragmented, making it difficult to find interesting content and reducing collaboration value.

To resolve this, Rivet Logic is implementing a solution that enables user-generated content to cross application boundaries and reside in one location via Crafter Social, while also allowing for better personalization by using Crafter Profile to maintain a dynamic customer profile.

Crafter Social easily adds social engagement features – user-generated comments, likes, ratings, blogs, discussion forums, and more – to a website by attaching social features to any content item or page. And Crafter Profile provides user profile and account management to help create personalized experiences.

For example, in the current site, if a user comments on a blog entry and another user participates in a forum discussion about the same topic, these interactions are not associated in any way.

With the Crafter Social solution, we were able to turn the blog entry’s comment thread into a virtual forum, thus connecting the two threads of discussion into one. This simple approach is extremely powerful, satisfying all four pillars of a good solution focused on enhancing customer engagement.

Even more, due to Crafter Social’s flexible architecture and underlying data model, it can easily be extended into other use cases, made possible by MongoDB’s document-based data models. In addition, the ability to easily embed Crafter Social into any site using any technology makes it an ideal part of any developer’s toolkit.

As illustrated in the diagram below, Crafter Social is broken into two parts. On the client side, it can be embedded on any site page regardless of what technology was used for implementation. And on the server side, Crafter Social collects various data from different sites and use cases, maintaining a holistic view of the user data. All of this helps enhance the quality of business intelligence information generated.

With this solution, AT&T is able to achieve their goals of increased user adoption and enhanced user engagement and retention. MongoDB plays a key role in the solution’s success by enabling:

  • Flexibility – Create new apps without revisiting infrastructure
  • Scalability – Ability to store large amounts of data and query without hurting performance
  • Visibility – Data is structured in an intuitive way allowing easy translation from raw data to something actionable
  • Insight – Flexible data structures and queries pave the way for creativity and innovation

To download a copy of the slides, click here.