I have a situation where I think it would be best to combine two architectures but I am not sure if this is possible or that it is a good thing to do.

By combining them I mean taking certain parts of the architecture and some other parts of the other architecture and combing them to form one hybrid architecture.

E.G Utilising the separation and client machines using the client-server technique from the client-server architecture and at the bottom where each machine might have its dedicated server with resources and a data source, We remove and replace the bottom part of the client-server architecture with a Repository Architecture where we will be centralising everything from there, the services and data source. This means that once the communication from the client machines pass through the internet layer, they all end up in a centralised repository.

1 Answer 1


There appears to be a confusion about what constitutes an "architecture" in software development. Architecture describes a general way of organizing code and behavior. Client-server is certainly an architecture, but there is no such thing as a "repository architecture." The Repository Design Pattern is likely what you are thinking about. A software design pattern gives a name for a common problem and provides a general solution.

Software architecture is concerned with code organization. Software design patterns make developer communication more efficient by giving a name to common problems and solutions. Architecture and design patterns are complimentary. A client-server architecture organizes each side of the application into layers. The server side of client-server architecture can utilize any number of data access design patterns. The repository design pattern is a data access pattern that fits well into many architectures.

Combining client-server architecture with the repository design pattern is pretty easy. Some layer of your server side architecture will contain "data access code". This is the layer that will implement the repository design pattern.

The specific details about implementing the repository design pattern are out of scope for this question, because it requires much more information about the problem. You should be able to research the repository design pattern as a next step. Feel free to ask follow-up questions as you learn more about this design pattern and start applying it to your application.

  • Oh yes you are correct. I confused the two due to the Textbook: Software Engineering by Ian Sommerville 9th Edition. The reason I confused them is that the Client-Server Architecture is under the heading Architectural Patterns same as the repository architectural pattern. Apr 29, 2022 at 13:51
  • @MbusoKotobe, that could have been a simple oversight by the author. Architecture is larger in scope than design patterns. Although since I haven't read the book, perhaps the author really was trying to define a broader design that would be an "architecture." Without enough context it is too hard to tell. Typically when developers see "repository X" they think of the repository design pattern, though. Apr 29, 2022 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.