Questions tagged [architecture]

Architecture encompasses the process, artifacts and high-level structure of a solution.

Architecture on StackOverflow.com

The Architecture tag on StackOverflow tends to cover a broad range of topics related to architecture, but mostly focuses on issues related to software.

More broadly...

As a Process

Architecture looks to gather information and make informed decisions regarding the nature of the solution. This specifically includes:

  • Interaction with various stakeholders.
  • Establishing the relative importance of various System Quality Attributes which will drive the architecture.
  • Evaluating different options against requirements (which can be both project specific and enterprise wide).

As a Role

Architecture covers the entire domain of software / information systems, and is composed of many specific roles that deal with the diverse complexity of that domain.

  • Enterprise Architects who deal with the top most strategic level of (often business orientated) architecture.
  • Solution Architects who tend to work on project specific work, and whom cover a very broad range of technology.
  • Software Architects who tend to work very much as Solution Architects but with a specific focus on Software.

These roles tend cover a broad spectrum of disciplines, and are supported by the follow roles which tend to have a much more specific focus and whom can cover both project specific work and enterprise wide concerns (such as tool selection):

  • Infrastructure and Network Architects who deal with those respective areas (see https://serverfault.com).
  • Data Architects who deal with all aspects relating to data including management, quality and re-use. Data Architects also deal with Business Intelligence.
  • Security Architects who focus on all aspects of security.

This list isn't exhaustive, other common architecture roles include Application Architect and Technical Architect.

17088 questions
83
votes
3 answers

Having Separate Domain Model and Persistence Model in DDD

I have been reading about domain driven design and how to implement it while using code first approach for generating a database. From what I've read and researched there are two opinions around this subject: Have 1 class that serves both as a…
Adrian Hristov
  • 1,957
  • 2
  • 16
  • 22
81
votes
5 answers

What are the DAO, DTO and Service layers in Spring Framework?

I am writing RESTful services using spring and hibernate. I read many resource in internet, but they did not clarify my doubts. Please explain me in details what are DAO, DTO and Service layers in spring framework? And why usage of these layers is…
Prathap Badavath
  • 1,621
  • 2
  • 20
  • 24
80
votes
4 answers

REST actions and URL API design considerations

I'm building a inventory management system and I'm busy designing (thinking) of the API and my REST implementation. I have the following resources and on the resource you can perform many actions/operations. Each operation will modify the resource…
Francois Taljaard
  • 1,339
  • 2
  • 12
  • 33
79
votes
9 answers

Fowler's "Patterns of Enterprise Application Architecture" still relevant?

I'm thinking of buying Martin Fowler's "Patterns of Enterprise Application Architecture". From what I can see it seems like a great book, an architectural book with bias towards enterprise Java -- just what I need. However, in computer years, it is…
Jack Singleton
  • 901
  • 1
  • 6
  • 5
79
votes
4 answers

Building enterprise app with Node/Express

I'm trying to understand how to structure enterprise applciation with Node/Express/Mongo (actually using MEAN stack). After reading 2 books and some googling (including similar StackOverflow questions), I couldn't find any good example of…
WelcomeTo
  • 19,843
  • 53
  • 170
  • 286
78
votes
3 answers

What is the technology behind wechat, whatsapp and other messenger apps?

I am eager to know about the architecture of different real-time messenger apps. Are they using any generic protocol/architecture?
viswas
  • 1,007
  • 1
  • 9
  • 13
77
votes
15 answers

What is Cyclomatic Complexity?

A term that I see every now and then is "Cyclomatic Complexity". Here on SO I saw some Questions about "how to calculate the CC of Language X" or "How do I do Y with the minimum amount of CC", but I'm not sure I really understand what it is. On the…
Michael Stum
  • 177,530
  • 117
  • 400
  • 535
77
votes
14 answers

When to use the CQRS design pattern?

My team and I have been discussing using the CQRS (Command Query Responsibility Segregation) design pattern and we are still trying to asses the pros and cons of using it. According to: http://martinfowler.com/bliki/CQRS.html we haven't seen…
Eric
  • 3,632
  • 2
  • 33
  • 28
77
votes
16 answers

Business Logic in Database versus Code?

As a software engineer, I have a strong bias towards writing business logic in the application layer, while typically relying on the database for little more than CRUD (Create Retrieve Update and Delete) operations. On the other hand, I have run…
senfo
  • 28,488
  • 15
  • 76
  • 106
77
votes
7 answers

Better to have huge Controllers, or many controllers, in MVC?

We are building a fairly large HR application in ASP.NET MVC, and so far our controllers are becoming quite large. For example, we have an Employee controller, and all employee views are included (Personal info, employee deductions, dependents,…
Beep beep
  • 18,873
  • 12
  • 63
  • 78
76
votes
6 answers

Coupling and cohesion

I'm trying to boil down the concepts of coupling and cohesion to a concise definition. Can someone give me a short and understandable explanation (shorter than the definitions on Wikipedia here and here)? How do they interact? Thanks. Anybody have a…
Jonathan
  • 7,349
  • 5
  • 29
  • 35
73
votes
5 answers

Is Apache Kafka appropriate for use as an unordered task queue?

Kafka splits incoming messages up into partitions, according to the partition assigned by the producer. Messages from partitions then get consumed by consumers in different consumer groups. This architecture makes me wary of using Kafka as a…
morsecoder
  • 1,479
  • 2
  • 15
  • 24
71
votes
4 answers

When do I call my class controller, manager or service?

Maybe it is obvious to you. I'm new to java (half year work) and I had a discussion with my collegues. I have troubles naming my classes according to their responsibilities. For that, my classes gain responsibilities they should never have. Can you…
MartinL
  • 3,198
  • 4
  • 18
  • 20
71
votes
5 answers

Nested redux reducers

Is it possible to combine reducers that are nested with the following structure: import 'user' from ... import 'organisation' from ... import 'auth' from ... // ... export default combineReducers({ auth: { combineReducers({ user, …
AndrewMcLagan
  • 13,459
  • 23
  • 91
  • 158
70
votes
5 answers

Room persistence library and Content provider

Last Couple of days I have been spending times on learning new Android Architecture Components . After following up some blog posts, documentation & tutorials , every components were getting clear to me . But Suddenly I realised what about our old…