oowlish/salesforce-bundle
Oowlish Salesforce Bundle provides Symfony integration for Salesforce, with configurable clients and services for authentication, querying records, and working with Salesforce objects. Use it to connect PHP applications to Salesforce data and workflows.
Architecture fit: Weak for a Laravel application. oowlish/salesforce-bundle is a Symfony Bundle, not a Laravel package. Laravel consumes Symfony components but does not run the Symfony Kernel/bundle registration model, so the package’s configuration, dependency-injection extension, and service wiring would not load natively. A TPM should treat this as a Salesforce API client reference, not a drop-in Laravel integration.
Integration feasibility: Feasible only with custom glue. The practical path is to isolate the underlying Salesforce client behavior behind a Laravel service/provider and adapter layer, or replace it with a maintained SDK. Direct bundle installation into Laravel would likely require nonstandard bootstrapping and ongoing compatibility work.
Technical risk: High. Signals include only 4 stars, 0 dependents, low score, and no visible ecosystem adoption. Risks include stale Salesforce API coverage, unclear PHP/Laravel compatibility, weak test coverage, undocumented authentication flows, dependency drift, and security exposure in handling OAuth credentials and customer data. For a production CRM integration, this is not a low-risk dependency.
Key questions: Which Salesforce APIs are supported: REST, SOAP, Bulk, Streaming, Metadata? Which auth flows are covered: OAuth 2.0 web server, JWT bearer, username-password? What PHP, Symfony, Guzzle, and Laravel versions are supported? Is the package actively maintained? Are there tests, examples, and API-version pinning? What is the upgrade path when Salesforce retires API versions?
Stack fit: Poor as a direct Laravel dependency. Better suited as a design reference or a temporary spike. If Salesforce integration is strategic, use a maintained PHP Salesforce SDK or a thin in-house client, then wrap it in Laravel services, jobs, and configuration.
Migration path: Start with a proof of concept in a branch. Attempt to consume the core Salesforce client without the Symfony bundle wiring. If successful, place it behind a SalesforceClient interface and Laravel service provider. If not, extract only relevant API call patterns and rebuild against a supported SDK. Avoid letting bundle-specific classes leak into application code.
Compatibility: Validate against the target Laravel and PHP versions, Guzzle/PSR dependencies, and Salesforce API version. Confirm that authentication, token refresh, retries, and error mapping work under Laravel’s container and queue workers. Treat any Symfony-version constraint as a blocker until proven otherwise.
Sequencing: 1) Due-diligence spike and dependency audit. 2) Build an adapter contract and contract tests against a Salesforce sandbox. 3) Implement authentication and token refresh. 4) Add read-only sync first. 5) Add write operations with idempotency. 6) Add bulk/async jobs if needed. 7) Add observability and fallback. 8) Decide whether to keep, fork, or replace before production commitment.
Maintenance: High relative to value. With 0 dependents and minimal adoption, the team should expect to own patches, dependency updates, and Salesforce API-version changes. A fork may become necessary, which shifts the package from “dependency” to “internal product.”
Support: Effectively community-supported at best. There is no vendor SLA, and low usage means fewer answers for integration failures. The TPM should budget internal Salesforce and Laravel expertise rather than relying on package documentation.
Scaling: Scaling is constrained more by Salesforce API limits, governor limits, bulk job throughput, and token/session management than by the package itself. Queue-based workers, backoff, rate limiting, and batch sizing are mandatory. The package should not be assumed to provide production-grade concurrency or resiliency.
Failure modes: Token expiry and refresh failures; Salesforce API limit exhaustion; request timeouts; partial failures in bulk jobs; duplicate writes without idempotency keys; webhook signature validation gaps; breaking changes from Salesforce API retirement; and Laravel/Symfony dependency conflicts. Each needs explicit retry, dead-letter, alerting, and reconciliation handling.
Ramp-up: Moderate to high. Engineers need Laravel service-provider skills, Symfony bundle literacy for evaluation, Salesforce authentication/API knowledge, and sandbox access. Because documentation and adoption are thin, onboarding will depend on code reading and spike work rather than established patterns.
TPM recommendation: Do not adopt oowlish/salesforce-bundle as a production dependency for a Laravel application without a time-boxed technical spike. Use it as a reference for Salesforce API interaction, but plan on a maintained SDK or a thin internal adapter with explicit ownership, contract tests, and operational safeguards.
How can I help you explore Laravel packages today?