Enterprise Application Integration Questions
Connecting large, heterogeneous enterprise systems into a coherent whole: interoperability across legacy and modern platforms, integration architecture for digital transformation, standards-based interfaces, and system-of-record coordination. Covers integration platforms/middleware, canonical data models, and the interoperability and governance concerns of complex multi-system landscapes.
Given many enterprises use Concur or other expense systems, outline a data mapping and transformation plan for syncing Lyft ride data to expense systems. Provide a sample mapping: ride_time → expense_date, amount → total_amount, rider_email → employee_id (via mapping table), ride_id → external_reference. Describe common mismatches (timezones, currency, partial subsidies) and how you'd resolve them.
Sample Answer
Clarify requirements:
- Target systems (Concur, SAP Concur API), expected fields, cadence (real-time vs batch), auth, error-handling SLA, employee identifier source of truth, currency rules, subsidy/business rules.
High-level plan:
- Extract: Pull Lyft ride events (webhook/periodic export) including ride_id, rider_email, ride_start/end, amount, currency, discounts/subsidies, receipt_url, billing_code.
- Transform: Apply canonical schema and rules (below).
- Enrich: Map rider_email → employee_id via HR mapping table; convert currencies/timezones; tag subsidies.
- Load: Upsert to expense system using Concur API with idempotency using external_reference=ride_id.
- Monitor & Audit: Reconciliation reports, error queues, retry policies, alerting.
Sample mapping (Lyft → Concur canonical → Concur API)
- ride_time (ride_start) → expense_date (date portion, converted to employee local timezone)
- amount (net_charge) → total_amount (decimal, in Concur required currency)
- rider_email → employee_id (lookup in HR mapping table; if missing, fallback to create expense with external approver tag)
- ride_id → external_reference (unique idempotency key)
- receipt_url → receipt_image/receipt_link
- pickup_address → merchant_location
- ride_type → expense_type (business, personal, pooled)
Transformation rules:
- Timezones: store ride timestamps in UTC; convert to employee’s workplace timezone for expense_date and to local timestamps in memo. For overnight rides, expense_date = ride_start local date; if policy requires ride_end, flag for manual review.
- Currency: normalize amounts to Concur-required currency. If ride currency ≠ expense currency, include fx_rate and converted_amount. Use trusted FX service with effective_date = ride_date. Persist original_currency and original_amount.
- Partial subsidies/credits: represent subsidy as separate line item or tax/expense split: total_amount = passenger_share; subsidy recorded as company_payment_field or as expense split with negative line item. Include subsidy_type and subsidy_id for reconciliation.
- Missing employee mapping: route to a quarantined queue, notify admin, optionally create provisional expense using rider_email and mark for approval.
Data quality, idempotency & reconciliation:
- Use ride_id as external_reference and send idempotency keys to Concur.
- Validate amounts, required fields before send; push failures to retry queue with exponential backoff.
- Daily reconciliation: match delivered expenses to Lyft payouts and subsidies; surface mismatches (amount, currency, duplicates).
- Auditing: store raw payloads, transformation logs, and mapping table versions for traceability.
Security & compliance:
- Encrypt PII at rest and in transit, follow least privilege for HR mapping access, log access for audits (SOC2/GDPR considerations).
Trade-offs:
- Real-time vs batch: real-time is better for user experience but requires stronger idempotency and monitoring; batch simplifies reconciliation.
- Where to apply FX: at extraction time (consistent) vs at load time (aligns with Concur FX).
This plan ensures accurate, auditable expense entries, handles common mismatches, and supports operational recovery.
During a sales cycle, a prospect requires integration with an on-prem ERP that has unreliable VPN connectivity and strict data residency. Outline an integration architecture that minimizes business disruption: list integration patterns (batch, near-real-time, proxy), mitigation for unreliable connectivity, estimated timeline and risk profile, and customer responsibilities.
Sample Answer
Requirements & constraints:
- On‑prem ERP, strict data residency (data must remain on customer site or within approved boundaries)
- Unreliable VPN (intermittent connectivity, variable bandwidth)
- Minimize business disruption during integration
Proposed high-level architecture:
- On‑prem Integration Gateway (containerized or VM) + local message store
- Enterprise Service Bus (ESB) / light-weight iPaaS connector on‑prem to translate ERP formats
- Outbound secure proxy to cloud services only for metadata/commands (if allowed); primary data stays on‑prem
- Optional edge API/proxy for controlled near‑real-time interactions
Integration patterns (when to use):
- Batch (recommended default): Scheduled ETL jobs that read/write from ERP during off-peak windows; stores files locally and retries on failure.
- Near‑real‑time (hybrid): Local event-driven adapter publishes events to local message queue; when VPN available, gateway forwards to cloud. Provides eventual consistency.
- Proxy (limited): For synchronous UI flows requiring live validation, use an on‑prem proxy API that the cloud calls; if VPN down, degrade gracefully to cached data or offline mode.
Mitigations for unreliable connectivity:
- Local durable queue (Kafka/RabbitMQ) and persistent file staging with retry/backoff
- Checkpointing and idempotent operations to avoid duplicates
- Delta-only transfers and compression to reduce bandwidth
- Circuit breaker and fallback strategies: cached reads, read-only maintenance mode
- Health & telemetry: synthetic transactions, connection monitoring, automated alerts
- Option: Leverage a secondary connectivity channel (4G/5G) for critical control-plane messages
Estimated timeline & milestones (typical, 8–12 weeks):
- Week 0–1: Discovery, security approvals, network & compliance sign-off
- Week 2–3: On‑prem gateway and adapter development + config
- Week 4–6: Implementation of batch jobs, message queues, and retry logic
- Week 6–8: End‑to‑end testing (connectivity failure scenarios), performance tuning
- Week 9–10: Pilot with limited dataset, user acceptance
- Week 11–12: Cutover, monitoring ramp, handover
Risk profile & mitigation:
- Data residency non‑compliance (High) — Mitigation: Keep PII on‑prem, audited logs, approve data flows with legal.
- VPN instability causing delayed sync (Medium) — Mitigation: Durable queues, retries, offline UX.
- Duplicate or out‑of‑order transactions (Medium) — Mitigation: Idempotency keys, sequence numbers, compensating transactions.
- Change to ERP schema (Medium) — Mitigation: Schema validation, adapter versioning, contract tests.
- Security breach on edge (Low) — Mitigation: Mutual TLS, VPN hardening, least privilege, regular audits.
Customer responsibilities:
- Provide network topology, firewall rules, and VPN maintenance windows
- Provision on‑prem host (VM/container), storage for staging, and required runtime (Java/.NET/Python)
- Ensure ERP change control access and sandbox for testing
- Approve data residency and compliance reviews; provide data classification
- Assign SMEs for testing and acceptance, and a network contact for connectivity troubleshooting
- Provide credentials and support for installing agents/connectors
Why this minimizes disruption:
- Primary data processing remains on‑prem satisfying residency
- Durable local queuing + batch-first approach tolerates unreliable VPN and reduces transaction failures
- Hybrid near‑real‑time allows responsive scenarios with graceful degradation
- Clear responsibilities and phased rollout reduce cutover risk and business impact.
A legacy SOAP integration must be exposed to modern REST consumers. Outline a migration/bridging solution that minimizes disruption: include protocol translation, schema mapping, authentication bridging, and testing strategy.
Sample Answer
Requirements & constraints:
- Preserve existing SOAP backend (no code changes if possible), expose REST/JSON API for new consumers, keep SLAs, support auth methods used by clients, minimize downtime.
High-level architecture:
API Gateway → Protocol Translator / Adapter → Message Transformer (schema mapping) → SOAP Client (WSDL) → Legacy SOAP service
Aux: Auth Bridge, Validation, Monitoring, Retry/Queue for async, Test Harness.
Components & responsibilities:
- API Gateway (e.g., Kong/Apigee): route, rate-limit, TLS, logging, expose OpenAPI endpoints.
- Protocol Translator (stateless microservice): accepts REST/JSON, converts to SOAP XML, calls SOAP endpoint, converts SOAP response to JSON. Use a robust SOAP client (generated from WSDL).
- Schema Mapping: maintain mapping definitions (OpenAPI ↔ WSDL/XSD). Implement transformation with templating/XSLT or mapping engine (e.g., MapForce, custom mapping service). Centralize mappings to avoid duplication.
- Auth Bridge: support token exchange patterns — accept OAuth2/JWT from REST clients, validate, then produce credentials expected by SOAP (WS-Security username token, SAML, or mTLS). Use token-exchange (RFC8693) or a secure credentials vault to inject SOAP credentials.
- Error & Idempotency handling: map SOAP faults to clean HTTP status codes; ensure idempotency keys for non-idempotent operations.
- Observability: structured logs, distributed tracing (W3C tracecontext), metrics & alerting.
Deployment & migration strategy:
- Start with read-only "shadow" mode: REST calls proxied to translator, responses compared against a direct SOAP consumer; non-production traffic for verification.
- Canary release: enable subset of clients; monitor correctness/latency.
- Gradual cutover: move clients to new REST endpoints; keep fallback by gateway to SOAP until validated.
Testing strategy:
- Unit tests for translator and mapping logic.
- Contract tests: verify OpenAPI ↔ mapping; use consumer-driven contract tests (Pact) to ensure REST expectations.
- Integration tests: run against a staging SOAP instance (or recorded VCR fixtures).
- End-to-end tests: exercise real flows including auth bridge, error paths, and performance.
- Regression tests: verify SOAP behavior unchanged.
- Chaos & load testing: validate latency and resilience; test retries, timeouts, and backpressure.
Operational considerations & trade-offs:
- Prefer stateless translator for horizontal scale; cache WSDL-derived metadata.
- If transformations become heavy, introduce async queue to decouple.
- Security: secure token exchange, rotate vaulted SOAP creds, audit trails.
- Document OpenAPI generated from WSDL to help API consumers.
This minimizes disruption by isolating translation layer, enabling progressive validation, centralizing mapping and auth bridging, and providing thorough testing before full cutover.
Design an Integration Platform as a Service (iPaaS) that provides hosted connectors, transformation DSL, workflow orchestration, monitoring and multi‑tenant isolation for enterprise customers. Discuss connector lifecycle, sandboxing and vetting third‑party connectors, scaling connectors on demand, pricing and metering, and onboarding new APIs safely.
Sample Answer
Requirements & constraints:
- Functional: hosted connectors, transformation DSL, orchestration, monitoring, multi-tenant isolation, connector marketplace (first/third‑party).
- Non‑functional: strong security/tenant isolation, autoscaling, low latency for real-time, cost predictability, safe onboarding for new APIs.
High-level architecture:
- Control plane (multi-tenant API, UI, auth, billing, orchestration engine)
- Data plane (connector workers, transformation runtime, sandboxed execution)
- Connector registry & marketplace (metadata, versions, vetting status)
- Observability stack (metrics, traces, logs, security audit)
- Policy & governance (IAM, quotas, network policies, secrets vault)
Connector lifecycle:
- Authoring: SDK + spec (OpenAPI / asyncAPI) + manifest (capabilities, auth, scopes, resource limits)
- Vetting: automated static analysis, dependency scan, behavioral tests, SCA, security review, runtime fuzzing
- Signing/Certification: platform signs approved binaries/containers
- Publishing: versioned in registry with semantic versions and change logs
- Runtime updates: staged rollouts, canary, forced deprecation notices
Sandboxing & vetting third‑party connectors:
- Run connectors in immutable, minimal containers or Wasm-based runtime for stronger isolation.
- Enforce seccomp, cgroups, network egress policies, per-tenant service accounts and secrets.
- Static checks: dependency vulnerabilities, license checks, forbidden syscalls.
- Dynamic tests: simulated workloads, rate/latency profiles, data leakage tests.
- Human review for privileged connectors; platform signs only approved artifacts.
Scaling connectors on demand:
- Connector workers are stateless where possible; scale via Kubernetes/HPA or serverless functions.
- Use autoscaling triggers: queue depth, per-connector concurrency, SLA latency, custom customer quotas.
- Warm pools for connectors requiring cold-start avoidance; sticky routing for stateful sessions via external state store (Redis) with TTL.
- Backpressure and graceful degradation: retries, DLQs, throttling per-tenant.
Transformation DSL & orchestration:
- DSL: typed, composable, safe subset (declarative + user functions sandboxed). Compile to intermediate representation executed in Wasm runtime to ensure isolation and resource limits.
- Orchestration engine: durable event-sourced workflow with task queues, retry policies, parallel steps, compensation actions.
Monitoring, observability & multi‑tenant isolation:
- Metrics per-tenant/per-connector (throughput, errors, latency), traces with tenant-tagging, rate-limited logs to S3 per tenant.
- Enforcement: per-tenant quotas, RBAC, encrypted tenant data at rest/in transit, key‑per‑tenant secrets (KMS).
- Billing hooks tied to metering events.
Pricing & metering:
- Multi-dimensional metering: connector invocations, data processed (GB), transformation CPU time (compute-seconds), retained workflow history, premium certified connectors.
- Pricing tiers: Free dev sandbox, Standard (shared workers, soft SLAs), Enterprise (dedicated workers, VPC peering, higher quotas, enhanced SLAs).
- Metering pipeline: immutable event stream -> aggregator -> billing engine (batched, daily), real-time usage UI and alerts, overage protection.
Onboarding new APIs safely:
- Automated import from OpenAPI/asyncAPI to generate connector skeletons and capability manifest.
- Default least-privilege auth flows (OAuth flows, token exchange, fine-grained scopes).
- Staging environment: customer or sandbox account can run connectors in isolated test tenant with sample/test data and traffic injection.
- Policy templates for data classification, PII redaction rules, transformation sanity checks, and contract tests to validate SLA and rate limits against provider.
- Rollout pattern: internal testing → private beta → certified public release; rollback and revocation of connector signatures if issues found.
Trade-offs:
- Wasm runtime increases safety and fast startup but requires investment in language support; containers allow easier third‑party integration.
- Shared vs dedicated workers: shared reduces cost but weaker isolation; offer both in pricing tiers.
- Aggressive vetting increases time-to-market for third‑party connectors; mitigate with clear SLAs, automated tools, and optional paid expedited review.
This design balances enterprise security, scalability, and ease of integration while offering clear operational and commercial controls for customers and partners.
Design at a high level a merchant POS integration approach for a DoorDash-like platform that supports order receipt, menu sync (including item availability), and order status updates. Describe recommended integration patterns (webhooks, polling, middleware), authentication models, idempotency/error handling, and how to support legacy POS systems.
Sample Answer
Requirements (brief):
- Receive orders in merchant POS, sync menu + availability, and push order status updates back to platform. Low latency for orders, eventual consistency for menu acceptable. Support modern and legacy POS.
High-level architecture:
- DoorDash platform exposes REST APIs + webhook event endpoints. Middleware (merchant gateway) sits between platform and merchant POS to handle protocol translation, retrying, and security.
- Flow: Menu sync (push from merchant or pull by gateway) → Order placement on DoorDash → Platform sends order webhook to gateway → Gateway translates to POS protocol and calls POS API or injects into legacy adapter → POS acknowledges; status updates flow back via gateway → platform.
Integration patterns:
- Webhooks (primary) for real-time order delivery and status updates.
- Polling (fallback) for POS that cannot accept inbound webhooks — gateway polls POS for new orders and status changes at configurable intervals.
- Middleware (gateway) for transformation, buffering, batching, and monitoring.
Authentication & security:
- OAuth 2.0 client credentials or JWT mutual TLS between platform and merchant gateway for machine-to-machine.
- Gateway ↔ POS uses the POS vendor’s auth (API keys, basic auth, or mTLS). For legacy terminals without APIs, use secure VPN + site agent with certificate-based auth.
- Encrypt data in transit (TLS 1.2+) and at rest; adhere to PCI scope minimization (tokenize card data, don't store PAN).
Idempotency & error handling:
- Every order/event carries a globally unique id (UUID) and an idempotency key. APIs accept idempotency key to dedupe retries.
- Acknowledge patterns: synchronous 200 OK for receipt; if transient error, respond 5xx to trigger retry. Gateway implements exponential backoff, capped retries, and dead-letter queue with operator alerts.
- Retries are safe because operations are idempotent; include versioning/timestamps for menu updates to apply only newer changes.
- Provide reconciliation endpoints and dashboards showing pending/failed orders and manual retry tools.
Supporting legacy POS:
- Local site agent (edge adapter) that runs on merchant network to translate webhook HTTP into POS-specific protocols (serial, legacy TCP, file drops, or keyboard injection). It can poll the platform if inbound not allowed.
- Batch synchronization: for menus, support CSV/FTP import/export via gateway; allow scheduled sync windows.
- Thin client: provide a light SDK and prebuilt connectors for top POS vendors to reduce integration effort.
Operational considerations:
- Monitoring/observability: metrics for delivery latency, failure rates, retry counts; distributed tracing across platform→gateway→POS.
- SLAs & throttling: per-merchant rate limits, backpressure signals (429) with Retry-After.
- Versioning: API versioning and feature flags to roll out changes without breaking merchants.
Trade-offs:
- Webhooks + middleware provide low latency and central control but require merchants to expose endpoints or install agents. Polling/agents increase operational complexity but maximize compatibility with legacy systems.
This design balances real-time needs, security, and broad merchant compatibility while keeping integrations manageable and observable.
Unlock Full Question Bank
Get access to all 7 Enterprise Application Integration interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.