Neo4j and Cypher: Using MERGE with Schema Indexes/Constraints

I wrote about cypher’s MERGE function a couple of weeks ago, and over the last few days, I’ve been exploring how it works with schema indexes and unique constraints.

An Exciting Time to Be a Developer

There is so much that could be said about the merging of Neo4j and Cypher right now, but it is certainly reasonable to point out that this merger will likely result in many exciting developments in the programming world. 

Key Takeaways: Adrian Cockcroft’s talk on Netflix, CD, and Microservices

One of the big draws of the O'Reilly Software Architecture Conference was Adrian Cockcroft's talk, "Deliver Faster and Spend Less with Cloud Native Microservices."  Cockcroft is an experienced speaker on the conference circuit and he's well-known as the architect who led Netflix into its new era of unprecedented scale and agility.  

He now works for Battery Ventures, but he still draws primarily on his experiences at Netflix for his talks.  He and his team were the ones behind the greatest success story for the latest trend in software architecture: microservices.

Fun With Modules

Tight coupling between modules is a bad idea, and the worst form of coupling is cyclic dependencies between modules. Fortunately, there are a few techniques we can use to break the cycles. They are Callback, Escalation, and Demotion, and I’m going to walk through some examples that show each of them in action.

Then, once the dependencies are broken, we’ll look at two more techniques that allow us to invert and eliminate the relationship altogether. The code for each of the samples can be found in the edcie project on my Google code repository. Each example includes a build script and a simple test case. To execute them though, you’ll need GraphViz if you want to use JarAnalyzer. To invoke the build scripts without invoking JarAnalyzer, you can simply type:

Top ALM Tools and Solutions Providers

A good application lifecycle management (ALM) package has software that is able to carefully manage and monitor all aspects of software development.  ALM applications provide tools for managing and completing the phases of design, development, testing, deployment, and ongoing enhancements.   With an ALM solution in place, organizations can significantly improve the way they design, build, test, and adapt their software.  Greater customer satisfaction, speed of development, and reduction of cost is the often the result.

Top ALM Tools:

VersionOne

Portfolio Architecture Examples: Retail Collection

This article is a continuation of a series of posts about our project named Portfolio Architectures. The previous post, Portfolio Architecture Examples: Healthcare Collection, begins with a project overview, introduction, and examples of tooling and workshops available for the project.  You may want to refer back to that post to gain insight into the background of Portfolio Architectures before reading further.  

Retail Collection

The collection featured today is centered around architectures in the retail industry. There are currently seven architectures in this collection. We'll provide a short overview of each, leaving the in-depth exploration as an exercise for the reader.

Chopping the Monolith

If you attend conferences or read technical articles, you could think that microservices are the correct and only way to build a system at the moment.

Despite some pushback from cooler heads, the default architecture is microservices. In this post, I'd like to argue why it's wrong. I'll first get back to the origin of microservices and the fundamental reason to use them. Then, I'll describe why microservices don't fit most organizations' structures. Afterward, I'll move to detail the root problem to solve. I'll conclude by proposing an alternative, less-risky approach.

Where Does GraphQL Fit In the Stack?

GraphQL is a popular language, and it’s getting more popular by the day. We hear front-end developers, mobile developers, and back-end developers talking about GraphQL. So it’s clear that developers use GraphQL across the stack. But where exactly does GraphQL fit in the stack, and what benefits do you gain by using it?

In this article, we’ll first do a quick recap of what “the stack” looks like without GraphQL, and then we’ll dive into how adding GraphQL changes it and what that means for building applications.

How Is Data Processed in a Vector Database?

In the previous two posts in this blog series, we have already covered the system architecture of Milvus, the world's most advanced vector database, and its Python SDK and API.

This post mainly aims to help you understand how data is processed in Milvus by going deep into the Milvus system and examining the interaction between the data processing components.

APISIX: An API Gateway the Apache Way

During the pioneer area of the World Wide Web, the content was static. To serve it, a group of developers created a web server, which is now known as the Apache Web Server.

The Apache Web Server is built around a module architecture. Developers created a module to run CGI scripts to add dynamic content to the lot. Users wrote early CGI scripts in Perl. After a while, it became evident that generating a complete HTML page from scratch was not the best way and that templating - providing an HTML page with placeholders - was a much better approach. The PHP language started like this as a simple templating engine interpreted by a module.

Portfolio Architecture Examples: Telco Collection

This article is a continuation of a series of posts about our project named Portfolio Architectures. The previous post, Portfolio Architecture Examples: Healthcare Collection, begins with a project overview, introduction, and examples of tooling and workshops available for the project.  You may want to refer back to that post to gain insight into the background of Portfolio Architectures before reading further.  

Telco Collection

The collection featured today is centered around architectures in the telco domain. There are three architectures in this collection and we'll provide a short overview of each, leaving the in-depth exploration as an exercise for the reader.Portfolio Architecture Telco Collection

Portfolio Architecture Examples: Healthcare Collection

For a few years now we've been working on a project we have named Portfolio Architectures. These are based on selecting a specific use case we are seeing used in the real world by customers and then finding implementations of that case using three or more products from the Red Hat portfolio.

This basic premise is used as the foundation, but many aspects of open source are included in both the process and the final product we have defined. There is a community, where we share the initial project kickoff with a group of architects and use their initial feedback from the start. We also present the architecture product we've created right at the end before we publish to ensure usability by architects in the field. The final published product includes some internal-only content around the customer projects researched, but most of the content is open and freely available through various open-source channels.

Tech Radar: What It Is and Why Tech Teams Need to Have One

Keeping a project competitive within the technology market is, without a doubt, one of the most significant challenges for engineering teams. It is because it is necessary to update and revise solutions constantly: since, in the same way, it is terrible to use legacy technologies, it is also not advisable to use technologies simply because they are buzzwords.

But how to monitor and visualize all these solutions? One way to keep track of these stacks, which are crucial for an organization, is to make your company or teams have a Tech Radar.

MongoDB to Couchbase for Developers, Part 1: Architecture

Introduction

With this article on MongoDB to Couchbase comparison, I'm starting a new, detailed series for MongoDB developers to learn Couchbase by comparison. Two years ago, I wrote a single high-level comparative article on MongoDB and Couchbase.  I recommend you read that for a bird's view comparison. Both MongoDB and Couchbase have done multiple major releases since then, and developers need a deeper treatment of topics. As developers know, the devil is in the details :-) 

This series will be similar to the series for Oracle developers to learn Couchbase by comparison, but for MongoDB developers.  

Control Your Data Structures

Complex logic should be implemented on data structures you have full control on an internal Domain Model that you can tailor to your problem to simplify your code.

Here is an (opinionated) list of term definitions used in this article: