InfoQ Homepage Architecture & Design Content on InfoQ
-
Minding the API Hierarchy of Needs with RAML and APIkit
Reza Shafii explains how to satisfy two fundamental needs of API design and implementation, as defined by the API hierarchy of needs, with RAML, API Designer and APIkit.
-
Discover and Diagnose Java Concurrency Problems Using Contemplate's ThreadSafe
Writing Java software that correctly and safely makes use of concurrency requires careful thought. Software that incorrectly accounts for concurrency can contain intermittent defects that elude even the most rigorous testing regimes. Static analysis tools can analyze source code or compiled bytecode to discover latent bugs hidden within code, long before it is executed.
-
Intelligent Evolution: Making Change Work
Some 80% of all improvement and change programmes fail: they did not achieve the expected results, the investment in the change programme was greater than the value achieved, “improvements” were seen as mostly bureaucratic, or changes were abandoned soon after the implementation. Intelligent Evolution ensures long-term business success rather than short-term satisfaction of a standard or theory.
-
Preparing for Your First MongoDB Deployment: Backup and Security
This article we focuses on the database backup tools and security policies when deploying MongoDB NoSQL databases. Topics like cloud backups with MongoDB Management Service (MMS), authentication, and authorization are covered.
-
Design Patterns: Magic or Myth?
In this article, author discusses the effectiveness of the usage of design patterns in software development. The analysis is based on surveys and mapping studies conducted to indicate which patterns were considered useful under what circumstances.
-
Pragmatic Techniques for Maintaining a Legacy Application
Maintaining a legacy application can make you feel like mice in a maze. In this article Ping Chen shares her experiences on how to pragmatically maintain a large legacy application. "Pragmatic” is the operative word; since a legacy application can have lots of technical debt, one has to be strategic in choosing the right battles.
-
Monty Taylor and Jim Blair on CI and Test Automation at OpenStack
Monty Taylor and James Blair talk about the build and test challenges they face at OpenStack, and how they managed to tackle them. Managing hundreds of VMs on public clouds, integrating up to 400 commits a day and running thousands of test jobs on them are some of the challenges described.
-
Building a Real-time, Personalized Recommendation System with Kiji
Jon Natkins explains in this article how to create a personalized recommendation system fed with large amounts of real-time data using Kiji, which leverages HBase, Avro, Map-Reduce and Scalding.
-
Visualizing Java Garbage Collection
Garbage Collection, like Backgammon takes minutes to learn and a lifetime to master. In this article Master trainer/consultant Ben Evans summarizes his recent InfoQ presentation "Visualizing Garbage Collection" where he discusses Garbage Collection from the ground up.
-
Architecture and Agility: Married, Divorced, or Just Good Friends?
This article describes the relationship between architecture and process of software development and how architecture can responds to a set of needs, such as functional requirements, operational characteristics, and developer habitability. It also talks about the role of pragmatic architects when working with developers and stakeholders.
-
Cassandra CLI Internals Using JArchitect
Cassandra CLI is a useful tool for Cassandra administrators. It's a good example of how to implement a Cassandra client and CLI internals help us to develop custom Cassandra clients or even extend the CLI tool. In this article, author explores Cassandra CLI architecture model using JArchitect tool and CQLinq language to analyze its code base.
-
Don’t jump the SQL ship just yet
The SQL language has been evolving steadily over the last two decades. At the same time, the verbosity caused by the JDBC API in Java client code and the lack of first class SQL support within the Java language have led to the introduction of ORMs such as Hibernate, which was later standardised into JPA and the Criteria API.If SQL and JPA are diverging, where will our data interaction patterns go?