Multiple Function Apps vs Single Function App containing Multiple functionality

Relay 160 Reputation points
2025-05-15T15:34:50.07+00:00

I am designing a Real time streaming platform on Azure.

As shown in diagram below.

multiple-azure-function app

I am confused whether to use Multiple Function Apps one each for separate services or Single Function App with capability to handle different services at scale.

Which design approach is best. and what is Pros and Cons for both.

Please share your expert thoughts at enterprise level.

Thanks a lot

Azure Functions
Azure Functions
An Azure service that provides an event-driven serverless compute platform.
5,909 questions
{count} votes

Accepted answer
  1. Divyesh Govaerdhanan 6,235 Reputation points
    2025-05-15T23:49:47.1166667+00:00

    Hello,

    Welcome to Microsoft Q&A,

    To use a single Azure Function App (hosting multiple functions) or multiple Function Apps (one per service). This choice directly impacts scalability, isolation, CI/CD, monitoring, and cost.

    Use Multiple Function Apps - one per logical service. For enterprise-grade, scalable, and independently deployable systems, this is the recommended approach.

    Choose multiple Function Apps if:

    • You have distinct domains/services (e.g., ingest, transform, DLQ handler).
    • You need independent scaling, error handling, and deployment.
    • Your teams follow microservice or domain-driven design practices.
    • You want resilience (one app failing doesn’t affect others).
    • You are preparing for DevOps-first, CI/CD pipelines per domain.

    Choose a single Function App if:

    • You’re in early prototyping or small project mode.
    • You want a quick setup and low complexity.
    • Your entire app is deployed by a single team, and you're not splitting by domains.

    Please Upvote and accept the answer if it helps!!

    1 person found this answer helpful.
    0 comments No comments

2 additional answers

Sort by: Most helpful
  1. Shireesha Eeraboina 3,435 Reputation points Microsoft External Staff Moderator
    2025-05-16T05:48:12.9666667+00:00

    Hi Relay,

    The choice between using multiple Function Apps (one per service) versus a single Function App (hosting multiple services) depends on several factors including scalability, deployment strategy, team structure, security, and operational complexity.

    Using multiple Function Apps versus a single Function App with multiple functionalities has its pros and cons:

    Multiple Function Apps:

    Pros:

    • Isolation: Each function app can scale independently based on its load, which can lead to better resource management.
    • Performance: Reduces the memory footprint and startup time since each app only contains relevant functions.
    • Security: Easier to manage security settings and access controls for different services.

    Cons:

    • Management Overhead: More function apps mean more resources to manage, which can complicate deployment and monitoring.
    • Cost: Potentially higher costs due to multiple hosting plans, especially if using Premium or Dedicated plans.

    Single Function App:

    Pros:

    • Simplicity: Easier to manage a single deployment and monitor all functions in one place.
    • Cost Efficiency: Reduced costs by consolidating functions under one hosting plan.

    Cons:

    • Resource Contention: Functions with varying loads may compete for resources, potentially leading to performance issues.
    • Scaling Limitations: If one function requires significant resources, it can affect the performance of others within the same app.

    I hope this addresses your query. Please let me know if you need any further assistance or clarification.

    1 person found this answer helpful.
    0 comments No comments

  2. Jason Nguyen 5 Reputation points Independent Advisor
    2025-05-16T06:10:34.51+00:00

    Hi,

    Thank you for contacting Q&A Forum. I would like to provide my findings and proposed solution: 

     Multiple Function Apps

    • Pros

    Isolation of Concerns: Each service is independently deployable and manageable.

    Scalability: Each Function App can scale independently based on its own load.

    Security: You can assign different identities, roles, and access policies per app.

    Fault Isolation: A failure in one Function App doesn’t affect others.

    CI/CD Flexibility: Easier to manage separate pipelines for different services.

    • Cons

    Increased Management Overhead: More Function Apps mean more resources to monitor and maintain.

    Cold Start Penalty: Each app may experience cold starts independently.

    Resource Duplication: Shared libraries or configurations may need to be duplicated or managed via shared packages.

    Single Function App

    • Pros

    Simplified Deployment: One deployment pipeline for all services.

    Shared Configuration: Easier to manage common settings and libraries.

    Lower Overhead: Fewer Azure resources to manage.

    Cost Efficiency: Potentially fewer cold starts and better resource utilization.

    • Cons

    Scalability Constraints: All functions share the same scaling unit, which can lead to resource contention.

    Tight Coupling: Changes in one function may inadvertently affect others.

    Security Limitations: Harder to apply fine-grained access control per function.

    Deployment Risk: A bug in one function could impact the entire app.

    Enterprise-Level Recommendation

    At the enterprise level, the Multiple Function Apps approach is generally preferred for real-time streaming platforms, especially when:

    • You have distinct services (e.g., ingestion, transformation, enrichment, alerting).
    • You need independent scaling and deployment.
    • You want to enforce security boundaries between services.
    • You expect high throughput and low latency requirements.

    Kindly let me know if this work for you and please let me know if you have any further question.

    Best regards,

    1 person found this answer helpful.
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.