Skip to content

About Shepherd Technology

Shepherd is a cloud-native veterinary practice-management platform: web app, public API, AI services, payments, and integrations with the major lab, imaging, communications, and pharmacy vendors. The codebase has grown for years and is still actively shipped multiple times per month.

  • ~1.88M
    lines of C#
    Backend, services, integrations
  • ~934K
    lines of JS / TS
    Across 9 web applications
  • 32
    backend modules
    Backend services
  • 9
    web applications
    App, Platform, Forms, Pay, Pet Portal, …
  • 4
    compute tiers
    App · OpenAPI · Background · Data/AI
  • 15+
    integrations
    Labs, imaging, pharmacy, comms
  • Multi-AZ
    PostgreSQL
    Sharded primaries + read replicas
  • AWS
    cloud
    EC2, ECS, S3, ElastiCache, CloudFront
Shepherd production architecture Logical view: clients enter through CloudFront, WAF, and an Application Load Balancer, which fan out to four compute tiers (App Servers, OpenAPI, Background Services, Data/AI on ECS), backed by PostgreSQL Multi-AZ with replicas, ElastiCache Redis, and S3. Integrations and Shepherd Pay sit at the bottom. AWS Cloud Shepherd user app.shepherd.vet Partner API api.shepherd.vet CloudFront CDN AWS WAF edge protection ALB load balancer Shepherd compute App Servers EC2 · 9 web apps React · MobX · Kendo UI OpenAPI EC2 · public REST surface .NET · ASP.NET Web API Background Services EC2 · real-time push · background jobs Task runners · Report runner Data & AI Services ECS Fargate EchoAI · TranscribeAI · Chat · DataSvc Data PostgreSQL Multi-AZ · sharded primaries + read replicas ElastiCache Redis S3 object storage Integrations Communications SMS · Email · Intercom Labs & Imaging IDEXX · Antech · Heska · Zoetis · Asteris · SmartPacs Pharmacy & inventory VetSource · MWI · Cubex Shepherd Pay card-present + e-commerce gateway
Shepherd production logical architecture, simplified.

Shepherd runs on four distinct compute tiers, all behind an Application Load Balancer fronted by AWS WAF and (for the web app) CloudFront:

  • App Servers : the Shepherd web apps (App, Platform, Forms, Group Platform, Insurance Marketplace, Pet Portal, EES, Shepherd Pay) serve clinic users at app.shepherd.vet and related subdomains.
  • OpenAPI : the public REST API at open-api.shepherd.vet/pav2/, used by partner integrations. Its live Swagger UI is hosted at app.shepherd.vet/swagger/.
  • Background Services : real-time push hubs to the web app, background job runners, and the report runner. EC2-hosted.
  • Data & AI Services : a set of containerized services on ECS Fargate (EchoAI, TranscribeAI, Chat, Data Service) that handle ML inference, transcription, and analytical workloads off the request path.
  • PostgreSQL in Multi-AZ deployments with read replicas. Clinic data is sharded across physical clusters: a clinic ID resolves through a Group → Logical Shard → Physical Shard chain before it ever touches SQL. The API hides this from callers; see Data model for the model behind the shard.
  • ElastiCache (Redis) for session state, real-time fan-out, and hot-path caching.
  • S3 for binary objects: PDFs, lab reports, imaging artifacts, voice recordings.

The platform’s value compounds with its integrations. We currently exchange data with:

  • Labs & Imaging : IDEXX, Antech, Heska, Zoetis, Asteris, SmartPacs, and others.
  • Communications : SMS, email, and Intercom for in-app messaging.
  • Pharmacy & inventory : VetSource, MWI, Cubex.
  • Payments : Shepherd Pay handles card-present and e-commerce transactions through the gateway.

If you’re building an integration in one of these categories (or a new one), the API Reference and first integration tutorial are the right places to start.

  • Single source of truth for schemas. The live Swagger UI is the authoritative schema reference. This site adds the conceptual framing, tutorials, and code samples around it.
  • Tenancy isolation by default. Every API token is scoped to a clinic or clinic group; cross-clinic access requires an explicit grant.
  • Backwards compatibility on the public API. Breaking changes ride a new major version; deprecations are announced on the blog before removal.