Integration / Apache Pulsar Interview questions
1. Explain about Apache Pulsar.
Apache Pulsar is an all-in-one messaging and streaming platform. Messages can be consumed and acknowledged individually or consumed as streams with less than 10ms of latency. Its layered architecture allows rapid scaling across hundreds of nodes, without data reshuffling. Its features include mul...
2. What is AppDynamics?
AppDynamics is an Application Performance Monitoring (APM) and observability platform that watches how software behaves in production — tracking response times, error rates, and resource usage down to the individual method call. It was acquired by Cisco in 2017, and following Cisco's acquis...
3. What is Apache Pulsar?
Apache Pulsar is a distributed, cloud-native messaging and streaming platform , originally built at Yahoo and now an Apache Software Foundation project, designed to handle both traditional queuing and real-time stream processing in one system. Its defining trait is a segmented architecture that s...
4. What is a Pulsar broker?
A broker is the stateless component that handles all producer and consumer traffic for the topics it owns - accepting published messages, dispatching them to subscribed consumers, and enforcing policies - without storing the actual message data itself. Because brokers hold no persistent state, an...
5. What is Application Performance Monitoring (APM)?
Application Performance Monitoring is the practice of measuring and analyzing how well software performs while it's actually running, so teams can detect slowdowns, errors, and capacity problems before — or as soon as — they affect users. A typical APM tool like AppDynamics tracks a c...
6. What is Apache BookKeeper?
Apache BookKeeper is the distributed, replicated log storage system Pulsar uses to durably persist every message; it's a separate Apache project that predates Pulsar and provides low-latency, append-only storage. Storage is organized into ledgers , split into entries ; a ledger's entries are stri...
7. What are the core components of the AppDynamics platform?
AppDynamics is built from a small set of cooperating pieces: agents that collect data, a Controller that stores and analyzes it, and a UI/API layer teams use to act on it. Component Role App Agent Instruments application code (Java, .NET, Node.js, PHP, Python) to capture transactions Machine Agen...
8. What is the Controller in AppDynamics?
The Controller is the central server that every AppDynamics agent reports to. It receives incoming metrics and transaction data, stores it, evaluates health rules against it in near real time, and serves the web UI and REST API that teams use to view dashboards, flow maps, and alerts. It can run ...
9. What are tenants and namespaces in Pulsar?
A tenant is the top-level unit of multi-tenancy in Pulsar, typically mapped to an organization or team, used to apply resource quotas and authentication/authorization boundaries. A namespace is a logical grouping of topics within a tenant - for example separating dev, staging, and prod - and it's...
10. What is a topic in Pulsar?
A topic is the named channel through which producers publish messages and consumers subscribe to receive them - the fundamental unit of pub-sub in Pulsar. Topics can be persistent (durably backed by BookKeeper) or non-persistent (kept only in broker memory for lower latency at the cost of durabil...
11. What is an App Agent in AppDynamics?
An App Agent is the piece of AppDynamics that runs inside the actual application process — the JVM for Java, the CLR for .NET, the Node.js runtime, and so on — and instruments the code without requiring source code changes. For managed runtimes like Java and .NET, it works by injectin...
12. What is a producer in Pulsar?
A producer is a client process that publishes messages to a specific topic; it connects to the broker currently owning that topic (or partition) and sends messages that BookKeeper then durably stores. Producers can be configured with batching, compression, and a routing mode for partitioned topic...
13. What are the types of agents available in AppDynamics?
AppDynamics ships several agent families, each targeting a different layer of the stack, and most production deployments run more than one type side by side on the same host or application. Agent Type Monitors App Agents (Java, .NET, Node.js, PHP, Python, C/C++ SDK) In-process application code an...
14. What is a consumer in Pulsar?
A consumer is a client process that subscribes to a topic (via a named subscription) to receive and process published messages, then acknowledges each message once it's been handled. A consumer's behavior - which messages it sees, and whether other consumers share the load - is determined by the ...
15. What is a Business Transaction in AppDynamics?
A Business Transaction (BT) is a named, trackable unit of work — typically a specific request type like /checkout or /login — that AppDynamics follows from its entry point through every tier it touches, until the response is returned. Rather than showing raw, undifferentiated traffic,...
16. What is a Tier in AppDynamics?
A Tier is a logical grouping of one or more Nodes that perform the same role within an application — for example, every instance of your checkout service, regardless of how many servers it's running on, forms a single "Checkout Service" tier. AppDynamics automatically groups nodes into the ...
17. What is a subscription in Pulsar?
A subscription is a named cursor that tracks a consumer group's read position on a topic, independent from the topic's own data - it's what makes Pulsar behave like a durable queue and a pub-sub system at once, depending on how it's used. Multiple subscriptions can exist on the same topic simulta...
18. Define a partitioned topic in Pulsar?
A partitioned topic is a topic actually implemented as a set of internal sub-topics ( partitions ), each of which can be owned and served by a different broker, letting a single logical topic scale throughput beyond what one broker could handle alone. Producers route each message to a specific pa...
19. What is a Node in AppDynamics?
A Node is the smallest unit AppDynamics monitors: a single instance of an application process with an agent attached to it, such as one JVM, one .NET worker process, or one Node.js process. Each node gets a unique name in the Controller, often following an
20. What is a Business Application in AppDynamics?
A Business Application is the top-level container in AppDynamics' monitoring hierarchy — it represents an entire application end to end, made up of all the tiers (and their nodes) that participate in serving it, such as a web tier, an API tier, and a payments tier grouped under one e-commer...
21. What is Pulsar's metadata store used for?
The metadata store (traditionally ZooKeeper, though Pulsar also supports other backends) holds cluster-wide coordination state - broker membership, topic-to-broker ownership assignments, namespace policies, and BookKeeper ledger metadata locations. Brokers watch the metadata store to know which t...
22. What is the Application Flow Map?
The Application Flow Map is a live, auto-generated diagram showing how traffic actually moves through a business application — every tier drawn as a node, with arrows for calls between tiers and out to backends like databases, caches, or third-party services. Each connection is annotated wi...
23. What are Pulsar Functions?
Pulsar Functions are a lightweight, serverless-style compute framework built into Pulsar that let you run simple processing logic - a Java, Python, or Go function - directly against messages on a topic without standing up a separate stream-processing cluster. A function reads from one or more inp...
24. What is Pulsar IO?
Pulsar IO is a connector framework , built on top of Pulsar Functions, that provides ready-made sources (to pull data into Pulsar from external systems) and sinks (to push data from Pulsar to external systems) without writing custom integration code. Common connectors include sources/sinks for Ka...
25. What is a Health Rule?
A Health Rule is a condition AppDynamics continuously evaluates against live metrics — for example, "average response time exceeds 3 standard deviations above baseline for 5 minutes" — that puts a Business Transaction, tier, or node into a Warning or Critical health state when it's vi...
26. What is a Policy in AppDynamics?
A Policy connects a triggering condition — most commonly a health rule violation, but also events like a deployment or a specific error — to one or more Actions that should run automatically when that condition occurs. Actions can include sending an email, posting to a chat tool like ...
27. Describe geo-replication in Pulsar?
Geo-replication is Pulsar's built-in capability to asynchronously replicate messages published in one cluster to one or more other clusters, without requiring an external tool. It's configured at the namespace level by listing which clusters a namespace should replicate to; once enabled, each loc...
28. What is a Transaction Snapshot?
A Transaction Snapshot is a detailed, point-in-time capture of one specific execution of a Business Transaction — not an aggregate metric, but the actual call graph for that single request: every method call, database query, and remote call it made, each with its own timing. Snapshots are t...
29. What is tiered storage in Pulsar?
Tiered storage lets Pulsar automatically offload older message segments from BookKeeper to cheaper, long-term storage like Amazon S3, Google Cloud Storage, or Azure Blob once they age past a configured threshold. Offloaded segments remain fully readable through the same topic and consumer APIs - ...
30. What is a non-persistent topic in Pulsar?
A non-persistent topic keeps messages only in broker memory and never writes them to BookKeeper, trading durability for lower publish latency and no storage overhead. If a broker restarts or crashes, any messages still in flight on a non-persistent topic are lost, and there's no backlog to replay...
31. Define baseline in AppDynamics?
A baseline is AppDynamics' learned model of "normal" performance for a specific metric — typically a Business Transaction's response time — built from historical data rather than a single fixed number a person has to guess and set. Baselines are calculated per time window (for example...
32. What is the Machine Agent used for?
The Machine Agent runs on the host operating system, separately from any application process, and reports hardware and OS-level metrics: CPU utilization, memory usage, disk I/O, and network throughput for the server it's installed on. It's available for most common operating systems (Windows, Lin...
33. What are the subscription types in Pulsar?
Pulsar offers four subscription types: Exclusive (one consumer, full topic ordering), Failover (multiple registered consumers but only one active, providing hot-standby failover), Shared (many consumers round-robin messages with no ordering guarantee), and Key_Shared (many consumers, but same-key...
34. What is End User Monitoring (EUM)?
End User Monitoring captures how an application actually performs from the perspective of the person using it — in the browser or on a mobile device — rather than only measuring server-side response time. It has two real-traffic modes and one simulated mode: Browser RUM injects a Java...
35. What is message retention in Pulsar?
Retention determines how long already- acknowledged messages are kept in BookKeeper after every subscription has consumed them, since by default Pulsar deletes data once no subscription needs it anymore. Configuring a retention policy (size- and/or time-based) at the namespace or topic level keep...
36. What is schema registry in Pulsar?
Pulsar has a built-in schema registry that lets producers and consumers agree on message structure - supporting Avro, JSON, Protobuf, and plain primitives - without operating a separate schema service. When a producer with a defined schema publishes to a topic, Pulsar validates and stores that sc...
37. What is Database Visibility in AppDynamics?
Database Visibility, delivered through the Database Agent, monitors the performance of the database servers your application depends on — separate from, but correlated with, the application-side view of how long a query took from the app's perspective. It tracks database-level metrics like ...
38. What are Backends in AppDynamics?
A Backend is any downstream dependency a Business Transaction calls that AppDynamics doesn't have an agent installed on — a database, a cache like Redis, a message queue, a third-party REST API, or another internal service without its own App Agent. AppDynamics detects these automatically a...
39. List the core components of a Pulsar cluster?
A Pulsar cluster is built from four core pieces: brokers (stateless, handle pub-sub traffic), bookies (BookKeeper nodes providing durable storage), a metadata store (cluster coordination and ownership state), and optionally a proxy layer (a stateless gateway fronting brokers for client connection...
40. How do you create a topic in Pulsar?
The simplest way is auto-creation : publishing to or subscribing on a topic name that doesn't yet exist will create it automatically by default, using the namespace's default partition settings. For explicit control, the pulsar-admin CLI (or the equivalent admin API) can create a topic deliberate...
41. Describe the Metric Browser in AppDynamics?
The Metric Browser is the Controller UI screen for browsing and plotting the raw metrics AppDynamics collects, organized in a tree structure by application, tier, node, and metric category, rather than pre-packaged into a fixed dashboard. It's useful when a default dashboard doesn't show the exac...
42. What is the difference between a Tier and a Node in AppDynamics?
These two terms describe different levels of AppDynamics' monitoring hierarchy, and mixing them up is a common source of confusion for people new to the platform. Tier Node A logical group representing one application role (e.g. "Order Service"). A single running instance of that application, e.g...
43. What is the difference between Pulsar and Kafka's storage architecture?
Kafka couples compute and storage on the same broker process - each broker both serves client traffic and stores partition data on its own local disk, so scaling storage means scaling brokers too, and a broker failure requires replica reassignment and data catch-up. Pulsar splits these roles: bro...
44. How does Pulsar separate compute and storage?
Brokers handle all client-facing operations - accepting publishes, dispatching to consumers, enforcing policies - but hold no message data on local disk; when a broker needs to read or write an entry, it calls out to a BookKeeper ensemble over the network. Bookies handle only durable, replicated ...
45. How does AppDynamics automatically discover Business Transactions?
AppDynamics ships with built-in automatic discovery rules per supported framework and entry point type — servlets, EJBs, web services, message listeners, and similar — that watch incoming traffic and name a new Business Transaction the first time they see a distinct entry point patter...
46. What is the difference between automatic and custom Business Transaction match rules?
Both approaches decide how incoming requests get grouped into named Business Transactions, but they trade off setup effort against precision. Automatic Discovery Custom Match Rules Built in, requires no configuration to start. Explicitly authored by a team member. Can over-generate BTs on high-ca...
47. Why is Pulsar considered multi-tenant by design?
Multi-tenancy is built directly into Pulsar's naming hierarchy (tenant to namespace to topic) rather than layered on as a convention, so isolation and policy boundaries exist at the platform level from the start. Each tenant can have its own authentication and authorization rules, and each namesp...
48. What is the difference between Shared and Exclusive subscriptions?
An Exclusive subscription allows exactly one consumer at a time; a second consumer attempting to attach with the same subscription name is rejected, and the single active consumer receives every message in strict order. A Shared subscription allows many consumers to attach simultaneously, with me...
49. How does AppDynamics correlate a transaction across multiple tiers?
When a request enters the originating tier, the App Agent generates a unique identifier for that transaction instance and carries it forward as the request calls into downstream tiers, so every tier's activity for that one request can later be reassembled into a single, cross-tier view. sequenceD...
50. How does Key_Shared subscription maintain ordering?
Key_Shared allows multiple consumers on one subscription, similar to Shared, but instead of pure round-robin distribution it hashes each message's key and consistently routes all messages sharing that key to the same consumer. Ordering is preserved per key - all events for a given order ID or use...
51. Why is the singularityheader important in transaction correlation?
The singularityheader is the HTTP header AppDynamics uses to carry a transaction's correlation identifier from one tier to the next, and it's the specific mechanism that makes cross-tier distributed tracing possible instead of each tier only ever reporting isolated, disconnected metrics. When the...
52. When should you use Failover subscription instead of Exclusive?
Use Failover when you want the strict single-active-consumer ordering guarantee of Exclusive, but also want automatic, fast promotion of a backup consumer if the active one disconnects, without the application having to detect and reconnect manually. With Failover, multiple consumers can register...
53. How does AppDynamics decide when to capture a transaction snapshot?
Rather than recording every single execution of every Business Transaction — which would be far too much data — AppDynamics captures snapshots selectively, triggered by specific conditions on either the originating or a continuing tier. Trigger What it Means Slow Response time exceeds...
54. What is dynamic baselining and how does it work?
Dynamic baselining is the statistical process AppDynamics uses to continuously learn what "normal" looks like for a metric — most often a Business Transaction's response time — instead of relying on a static threshold someone has to guess and maintain by hand. It works by collecting h...
55. What is the difference between a ledger and a segment in BookKeeper?
A ledger is BookKeeper's fundamental storage abstraction - an append-only sequence of entries that, once closed, is immutable; a Pulsar topic's data is really a chain of these ledgers over time, not one continuous file. A segment, in Pulsar's terminology, generally refers to that same ledger view...
56. How does Pulsar achieve message deduplication?
Producer-side deduplication relies on each producer being assigned a unique producer name and tagging every message with a monotonically increasing sequence ID; the broker tracks the highest sequence ID it has durably stored per producer. If a producer retries a publish (say, after a network time...
57. Why does the Java Agent use byte-code instrumentation?
Byte-code instrumentation lets the Java Agent add monitoring logic — timing a method, capturing a database call, injecting a correlation header — into a running application without ever touching or recompiling the application's actual source code. The alternative approaches are both w...
58. Explain the internal working of AppDynamics' byte-code instrumentation?
When the Java Agent starts, it registers a Java agent premain hook (the standard JVM instrumentation API) that gets control before the application's own classes finish loading, giving it the chance to modify bytecode on the fly rather than after the fact. sequenceDiagram participant JVM participa...
59. Why do brokers in Pulsar not store data locally?
Keeping brokers stateless is a deliberate architectural choice: it decouples the availability and durability of message data from the lifecycle of any individual broker process, so a broker can be restarted, replaced, or moved without any risk to stored data. All durability responsibility is dele...
60. What happens when a broker crashes in Pulsar?
The metadata store detects the broker's session has expired (it stops renewing its ephemeral registration), and the cluster's load manager recognizes every topic the crashed broker owned now has no active owner. Those orphaned topics are reassigned to healthy brokers based on current load; becaus...
61. What is a Service Endpoint in AppDynamics?
A Service Endpoint lets you track a specific method call inside a Business Transaction as its own separately-measured unit — for example, one particular internal service call buried deep inside a larger transaction — without having to make it a whole new Business Transaction of its ow...
62. How does namespace bundle splitting work?
A namespace's set of topics is divided into fixed hash-range slices called bundles , which are the actual unit of load assignment - brokers own bundles, not individual topics directly, keeping ownership bookkeeping manageable even with millions of topics. When a bundle grows too hot (too much thr...
63. What is an Information Point?
An Information Point lets you turn the return value or a parameter of any method call into a custom metric, even if that method has nothing to do with entry points, exit points, or Business Transactions at all. You configure it by pointing at a class and method (similar to a Service Endpoint's ma...
64. What is the difference between backlog quota and retention policy?
Backlog quota caps how much unacknowledged data a subscription is allowed to accumulate; once the limit is hit, Pulsar applies the configured action - typically blocking producers or evicting the oldest unacked messages - to protect the cluster from an unbounded backlog caused by a stalled or slo...
65. What is a Data Collector in AppDynamics?
A Data Collector captures extra context alongside a transaction snapshot — an HTTP header value, a request parameter, a piece of business data passed as a method argument, or a JMX attribute — so that when you're looking at a slow or errored snapshot, you can see not just the timing b...
66. When should you use custom match rules instead of automatic discovery?
Custom match rules earn their configuration cost specifically when automatic discovery's default behavior produces a Business Transaction list that's either too noisy, too coarse, or misaligned with how the business actually thinks about its own critical flows. High-cardinality URLs: paths like /...
67. When should you use a Reader instead of a Consumer?
Use a Reader when you need direct, explicit control over the starting read position in a topic - for example replaying from a specific message ID or from the very beginning - without the subscription-based cursor tracking a Consumer relies on. A Reader doesn't create a durable, named subscription...
68. How does topic compaction work in Pulsar?
Compaction rewrites a topic's backlog into a compacted ledger that keeps only the most recent message for each distinct key, discarding older messages with the same key - similar in spirit to Kafka's log compaction, useful for topics representing "latest state per entity." It runs as a background...
69. What is the difference between Slow, Very Slow, and Stalled transactions?
These three categories describe increasingly severe response-time problems AppDynamics detects for a Business Transaction, and each maps to a different snapshot trigger and typically a different severity of health rule violation. Category Meaning Slow Response time exceeds baseline by a configure...
70. Why is ensemble size different from write quorum in BookKeeper?
Ensemble size (E) is the total number of bookies eligible to hold entries for a given ledger, while write quorum (Qw) is how many of those bookies each individual entry actually gets written to - Qw is always less than or equal to E. Separating the two lets an operator stripe writes for a single ...
71. How does AppDynamics calculate Average Response Time (ART)?
Average Response Time is the mean elapsed time, in milliseconds, from when a Business Transaction's entry point begins executing to when it returns a response, averaged across all the calls to that Business Transaction within the selected time window. Every individual execution the agent observes...
72. What is the difference between the Machine Agent and the Network Agent?
Both agents run at the host level rather than inside an application process, but they observe different layers of what's happening on that host. Machine Agent Network Agent Reports OS/hardware metrics: CPU, memory, disk, uptime. Reports TCP-level network metrics between tiers. Extensible via shel...
73. What is the difference between persistent and non-persistent topics?
Persistent topics durably store every message in BookKeeper before acknowledging the publish, so data survives broker restarts, and slow consumers can catch up later from the retained backlog. Non-persistent topics keep messages only in broker memory and never touch BookKeeper, trading that durab...
74. How does Pulsar handle delayed message delivery?
A producer can mark an individual message with a delay (a duration or an absolute delivery time), and the broker holds that message out of normal dispatch until the delay elapses, at which point it becomes visible to consumers like any other message. Internally, delayed messages are tracked in a ...
75. What is an Adaptive Session in AppDynamics?
An Adaptive Session (sometimes called a Diagnostic Session) is a temporary, more aggressive data-collection mode AppDynamics switches a Business Transaction into when it detects a recurring or worsening performance pattern, rather than relying on the normal, lighter sampling used during healthy o...
76. What happens when a consumer negatively acknowledges a message?
A negative acknowledgment (nack) tells the broker that this specific consumer failed to process the message and it should be redelivered - typically after a configurable redelivery delay - rather than being treated as successfully handled. Unlike an acknowledgment timeout (which waits for a consu...
77. What is a thread dump and when does AppDynamics capture one automatically?
A thread dump is a snapshot of every thread running inside a JVM (or similar runtime) at a specific moment, showing each thread's current state and full stack trace — which is exactly the data needed to see what a stalled or deadlocked application is actually stuck doing. AppDynamics can tr...
78. Explain the lifecycle of a message in Pulsar from produce to acknowledge?
A producer connects to the broker currently owning the target topic (discovered via a lookup against the metadata store) and sends a message, optionally batched with others and assigned a sequence ID for deduplication. The owning broker validates the message against the topic's configured schema,...
79. How would you troubleshoot a suspected memory leak using AppDynamics?
AppDynamics won't point at the exact leaking object automatically, but it gives you the signal that narrows where to look and the tooling to confirm it, rather than guessing blind. Spot the trend: in the Metric Browser, watch heap usage (or a specific memory pool) over hours or days — a lea...
80. How can you optimize Pulsar for high-throughput workloads?
Enable producer-side batching and compression so many small messages are grouped and compressed into fewer, larger network writes and BookKeeper entries, dramatically reducing per-message overhead at high publish rates. Use partitioned topics so a single logical topic's load spreads across multip...
81. What are custom extensions for the Machine Agent?
Custom extensions let the Machine Agent collect and report metrics beyond its built-in hardware set — anything a shell script, Java program, or other executable can measure and print in the expected format, the Machine Agent can pick up and forward to the Controller as a regular metric. Mec...
82. How do you troubleshoot a growing backlog in Pulsar?
Start by identifying whether the backlog growth is on a specific subscription or across the whole topic - per-subscription backlog metrics will show whether one consumer group is falling behind while others keep pace, pointing at a consumer-side problem rather than a producer or broker issue. Che...
83. How does the Cluster Agent monitor Kubernetes environments?
The Cluster Agent runs as its own pod inside a Kubernetes cluster and talks to the Kubernetes API server to collect cluster-level state and events — pod status, deployments, node conditions, and resource utilization — giving visibility into the orchestration layer itself, on top of wh...
84. What is the difference between SaaS and On-Premises Controller deployments?
Both deployment modes run the same core Controller software, but they differ in who operates the infrastructure and what that implies for maintenance, scaling, and data residency. SaaS Controller On-Premises Controller Hosted and operated by Cisco/Splunk. Installed and operated inside the custome...
85. Explain the execution flow of topic ownership failover in Pulsar?
Every broker maintains a live session with the metadata store using a short-lived, renewable registration; as long as the broker is healthy, it keeps renewing that session, implicitly proving it's still alive and reachable. When a broker crashes or becomes network-partitioned, it stops renewing i...
86. How can you optimize BookKeeper storage costs using tiered storage?
Configure an offload threshold (by size or age) at the namespace or topic level so ledger segments older than the threshold are automatically moved from replicated BookKeeper disk to cheaper object storage like S3, without manual intervention once set up. Choose the threshold deliberately based o...
87. How can you reduce AppDynamics agent overhead in a production environment?
Agent overhead in AppDynamics is generally low by design, but on very high-throughput or latency-sensitive services, a few concrete levers exist to trim it further without losing the visibility that matters most. Tune snapshot thresholds: if the slow/very-slow thresholds are too aggressive, the a...
88. What is Business iQ / Analytics in AppDynamics?
Business iQ (delivered through the Analytics Agent and Analytics UI) lets teams query and visualize transaction and log data using business-relevant dimensions — things like promo code, customer segment, or product SKU — rather than only the technical dimensions (tier, node, response ...
89. Explain the internal working of Pulsar transactions?
A Pulsar transaction begins when a client requests a transaction ID from a dedicated internal component, the Transaction Coordinator , which tracks the transaction's state (open, committing, committed, aborting, aborted) throughout its life. As the client produces messages and acknowledges consum...
90. How does AppDynamics integrate with ITSM tools like ServiceNow or PagerDuty?
AppDynamics integrates with ITSM and incident-management tools primarily through Policy Actions: when a health rule violation (or another triggering event) fires a policy, one of its configured actions can be to automatically create a ticket in ServiceNow, page an on-call engineer through PagerDu...
91. Which is better for exactly-once processing: idempotent producers or transactions, and why?
They solve different, narrower problems, so "better" depends on what's actually being protected - it isn't really a straight substitute-for-substitute comparison. Idempotent, deduplicating producers protect against a single producer accidentally publishing the same message twice due to its own re...
92. What is the AppDynamics REST API used for?
The AppDynamics Controller exposes a REST API that lets teams programmatically read and configure most of what's available in the UI — metrics, health rule status, business transaction lists, and configuration objects — instead of clicking through screens manually. Use Case Example Me...
93. How do you troubleshoot unbalanced load across brokers?
Check the cluster's current bundle-to-broker assignment and per-broker resource metrics (CPU, throughput, connection count) via pulsar-admin or a monitoring dashboard to confirm the imbalance is real and see which brokers are over- or under-loaded. A common cause is a small number of very hot bun...
94. Explain the lifecycle of a namespace bundle from creation to split?
When a namespace is created, its topic hash range is divided into an initial, configurable number of bundles - each owning an equal slice of the hash space that any topic in the namespace could fall into based on a hash of its name. As topics are created and traffic flows, each bundle gets owners...
95. Explain the lifecycle of an alert from health rule violation to notification?
An AppDynamics alert isn't a single event; it's a short pipeline where a metric condition is evaluated, a status change is recorded, and only then — if configured — does an external action actually fire. flowchart TD A[Live metric arrives] --> B{Health Rule condition evaluated} B -- W...
96. How can you optimize consumer throughput with Key_Shared subscriptions?
Ensure message keys have enough distinct values and reasonably even distribution across them - if most messages share one or a few keys, that traffic still funnels to a single consumer each, capping parallelism regardless of how many consumer instances are added. Scale the number of consumer inst...
97. What is the difference between Warning and Critical health rule severities?
Warning and Critical are the two severity levels a health rule violation can reach, and they exist so that not every deviation from normal gets treated with the same urgency — a mild slowdown and a full outage shouldn't page the same person the same way. Warning Critical A moderate, less se...
98. Explain the execution flow of a Pulsar Function processing a message?
The function's instance(s) subscribe to the configured input topic(s) as a regular Pulsar consumer under the hood, receiving each message through the normal subscription and dispatch mechanism just like any other consumer application. For each received message, the Pulsar Functions runtime invoke...
99. What are Instrumentation exclude rules and why would you use them?
Instrumentation exclude rules tell an App Agent to skip applying byte-code instrumentation to specific classes, packages, or methods that would otherwise match its normal detection logic — effectively an opt-out list layered on top of automatic and configured instrumentation.
100. How do you troubleshoot message duplication in a Pulsar producer?
First confirm whether producer-side deduplication is actually enabled on the namespace or topic - it's off by default in many configurations, so what looks like a "bug" causing duplicates may simply be expected behavior from retried publishes with dedup disabled. If dedup is enabled but duplicate...
101. Explain the execution flow of a distributed transaction across microservices in AppDynamics?
In a microservices architecture, a single user-facing request often fans out across many independently deployed services, and AppDynamics reconstructs that entire path as one logical Business Transaction rather than a set of disconnected per-service metrics. sequenceDiagram participant User parti...