Software architects must create designs that can endure throughout software evolution. In this article, based on a research study the authors discuss the criteria that can help architects assess architectural design decisions’ sustainability. They describe the challenges to achieving sustainable decisions, criteria for such decisions, solutions they tried, and lessons learned.
Capers Jones wrote the book The Technical and Social History of Software Engineering in which he provides an overview of the evolution of information technology and software development. InfoQ interviewed Capers about advancements and events in software engineering and the effects that they have had on our society.
In this article, authors discuss the role of big data and Hadoop in security analytics space and how to use MapReduce to efficiently process data for security analysis for use cases like Security Information and Event Management (SIEM) and Fraud Detection.
How to use various tools such as Apache Avro, Apache Crunch, Cloudera ML and the Cloudera Development Kit to build applications that use Hadoop.
Raffi Krikorian, Vice President of Platform Engineering at Twitter, gives an insight on how Twitter prepares for unexpected traffic peaks and how system architecture is designed to support failure. 1
In this article, authors present an empirical study about the software architecture practices for managing non-functional requirements and decision making in software development processes. 2
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.
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.
This article describes the relationship between architecture and process of software development and how architecture can respond to functional requirements and developer habitability. 1
This article shares a simple technique used to address problems such as a system’s intended functionality but also qualities such as performance, reliability, portability, and availability.
We demonstrate how to build a RESTful API on top of CQRS systems. The result joins HTTP semantics and REST style with distributed computing concerns such as eventual consistency and concurrency. 4
This article will take you through creating a simple RESTful web service with Spring Boot and Aerospike, a distributed and replicated in-memory NoSQL database.