InfoQ Homepage Architecture Content on InfoQ
-
10 Properties Defining Software Architecture
Software architecture is a process; a sequence of strategic design decisions mapping specification and business goals to architecture design, and a thing; a set of views produced by the process that address different stakeholders, Michael Stal states describing how to define a software architecture.
-
Introducing DDD in a Project at “Which?”
After failing with two proof of concept, mainly with scalability issues, when trying to renew their main website the business decided to take a more agile and incremental approach and in a restart of the project inspired by Domain-Driven Design (DDD) having developers talk with domain experts, Chris Patuzzo explains describing the principles of DDD in the context of a real project.
-
Moving Towards Integral Quality
Olaf Lewitz gave a keynote about Integral Quality at the Agile Testing Day Netherlands 2015. InfoQ asked Lewitz about quality attributes, what causes poor quality software, the relationship between the structure and culture of the organization and software quality and about clarifying intent and increasing trust.
-
A Critical Look at CQRS
Looking at Command Query Responsibility Segregation (CQRS) in a larger architectural context there are other architectural styles available. There are database technologies solving the same problems but in a simpler way, Udi Dahan states looking into ways of approaching CQRS. There is also a way that fulfils a lot of the CQRS goals but with fewer moving parts when CQRS is really needed.
-
Software – Is it "Engineering" Yet?
At the GOTO Amsterdam 2015 conference Mary Shaw talked about progress towards an engineering discipline of software. She explored what it means to have an engineering discipline, how far we have progressed toward having one for software, and what can be the next steps.
-
Why Scrum is Not Enough
When developing large complex systems and dealing with legacy code, organizations need to have systems in place to support integration and delivery. Modularization can help when agile is scaled with multiple teams that are working in parallel. It's not the framework or method that will do the job, but how your people will make it work to solve your problems says Hans Dekkers.
-
Scaling the Stack Overflow Monolithic App by Obsessing Over Performance
At QCon New York 2015, David Fullerton presented a deep-dive into the monolithic C# / MS SQL architecture that powers the Stack Overflow website, which handles over 4 billion requests per month. Fullerton argued that by focusing on performance, scalability was included ‘almost for free’; and that by minimising the number of external application services, the need to pay ‘SOA tax’ has been avoided.
-
How NGINX Achieves Performance and Scalability
Owen Garrett, heads of products at Nginx, Inc., has described on Nginx’s blog which design decisions allow NGINX to provide top-in-class performance and scalability.
-
Stefan Tilkov: Skip the Monolith, Start with Microservices
During the last months Martin Fowler among others have claimed that a microservices architecture should always start with a monolith, but Stefan Tilkov is convinced this is wrong, building a well-structured monolith with cleanly separated modules that later may be pulled apart into microservices is extremely hard, if not impossible in most cases.
-
Engineering for the Long Term at Google
Astrid Atkinson, director at Google, drew on their experiences over the last decade to present some rules and advice on engineering for the long term. The Velocity Conference 2015 attendees at Santa Clara learned that it's crucial to imagine that you're going to be wildly successful, that complexity mustn't be eliminated but managed and that the focus should be on scaling systems not teams.
-
Managing Technical Debt Using Total Cost of Ownership
Total Cost of Ownership (TCO) can be used for investment decisions and financial benefit analysis. When applied to software it covers the initial development costs and subsequent maintenance costs until phase out of a product. TCO can support architectural decisions and management of technical debt.
-
Agile Architecture: Reversibility, Communication and Collaboration
At the inaugural O’Reilly Software Architecture conference, Molly Dishman and Martin Fowler discussed the role of architecture within agile software development. Key takeaways included; architects must remain ‘hands on’; architecture should focus on reducing irreversibility; adaptable documentation is essential; and architecture is a collaborative effort across the business and technical team.
-
Domain-Driven Design the Wrong Way
Applications claimed to have been built using Domain-Driven Design (DDD) in reality often consists of entities or DTOs separating data and logic together with services containing a mix of business and infrastructure logic, Gabriel Schenker states, noting that this also often applies early on to projects building new applications. Lack of knowledge is one major reason for this, Schenker believes.
-
Chip Childers on Modern Application Architecture and Cloud Native Application Platform
Programming frameworks, containers, and application platforms are some of the components that make up the modern application architecture. Chip Childers of Cloud Foundry Foundation spoke at ApacheCon Conference last week about modern application architecture and the cloud native application platform.
-
Google Unveils Details about Borg
Google has published the paper "Large-scale cluster management at Google with Borg", unveiling details on a technology that was very little spoken about in the past.