Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3429236
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T07:03:25+00:00 2026-05-18T07:03:25+00:00

A little background on myself: I’ve generally worked on small projects that did not

  • 0

A little background on myself: I’ve generally worked on small projects that did not require significant architecture or concerns for scaling (such as developing small scale web applications using Web Forms and MVC).

What I’m working on: I’m now building a set of WCF applications (a WCF service that routes messages between a “requester” client and a “responder” client) that needs to be stable, scalable, and obviously responsive.

What I’m doing: I have a “broker service” running two end-points, one for the requester clients and one for the responder clients. Each service and client is essentially running with WCF default values, aside from the ConcurrencyMode being set to Reentrant.

//Client
[CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)]

//Service
[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Reentrant)]

Naturally, each service instance (PerSession) is independent from one another and can’t communicate with each other. So, to build a bridge between them I have a class called MessageBroker with singleton instance that the Services access. The broker routes requests from the requester service on to the responder service, and routes responses back in the same manner.

My concern is having this one object/instance route all messages for the whole system and the performance impact of that. Right now the clients are each calling their respective Send* methods using the predefined *Async methods defined when I added the service reference, and the callbacks on the clients are firing events using the Begin/End invoke methods of the event delegate. Aside from that, for now, all the methods are called synchronously. I’m thinking of adding more multithreading in the form of using the Begin/End invoke methods of a delegate in broker (I have another question about running out of threads in the threadpool using this method).

Since I’m new to this whole design/architecture concept, I want to know if what I’m doing is the right path to be taking or if I should be considering implementing a different architecture (this is the first, and seemingly the most obvious, I have come up with).

I don’t really have a mentor to bounce ideas off locally, so I hope the community can provide a little guidance.

Thanks for any advice, suggestions or criticism. 🙂

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T07:03:26+00:00Added an answer on May 18, 2026 at 7:03 am

    If you want your service to scale you’ll need to make the link between the participants loosely coupled. This means asynchronous queued messaging. There are countless reasons why this is a must, primarily though it would be in order to:

    • survive spikes in the load
    • scale-out instead of scale-up
    • manage service availability downtimes (both at your end and at the service client’s end)

    WCF has support for queued messaging via MSMQ, but you’ll have to forget pretty much everything about your HTTP based service model and start from scratchs with a message based paradigm. Also, you’ll need to solve the problem of authenticating and routing to/from MSMQ queues deployed on your client locations (not a trivial problem by any stretch).

    You could also consider a service to provide the messaging infrastructure, like Amazon SQS.

    And finally, if your back-end is SQL Server based end-to-end then you can use asynchrnous messaging straight from the database: Service Broker.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Background: There are a couple of concerns that are not core business for us.
For a little background, I work for a firm that develops web-based enterprise social
On a regular basis I find myself writing little utility programs that use some
little background: currently putting together a website that is selling products, many of which
First a little background. I got a warning in NetBeans told me not to
A little background: I'm creating a set of adapters to allow communication with mobile
First, a little background: I'm displaying a data set with 288 rows and 8
Background: I have a little video playing app with a UI inspired by the
We are developing a little application that given a directory with PDF files creates
I've been learning qt on windows for a little while (background in unix/embedded) and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.