Skip to content

Instantly share code, notes, and snippets.

@moritz

moritz/es.md Secret

Last active August 29, 2015 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moritz/d086a8372adf69cd8b65 to your computer and use it in GitHub Desktop.
Save moritz/d086a8372adf69cd8b65 to your computer and use it in GitHub Desktop.
Random musings on enterprise APIs

Not all of these points always apply; these are merely common observations

Characteristics

  • run/administered by dedicated admins (not the users)
  • integration with lots of other systems
  • legal requirements for data storage (e.g. PCI compliance) and traceability
  • often distributed over multiple machines (DB/web frontend/worker)
  • often runs in locked-down network environments (specific port/IP combinations opened in firewall, everything else forbidden)

Things that enterprise applications typically support

  • Authentication via LDAP/AD or Kerberos
  • Role-based authorization (possibly also from AD)
  • Multitenancy
  • Audit trails
  • Export of usage data / integration with billing
  • Resource budgets ("500 emails / month for the free tier")
  • Integration with existing CRM
  • Options for monitoring
  • Customer-facing software must allow custom themes

Enterprise software life cycle details

  • often procured / developed, installed, administered and used by dedicated groups
  • several of these groups can belong to distinct organizations
  • high up-front costs are often tolerated (procurement/development, non-trivial installation, training for users/admins)

How can we help to write enterprise software?

That's a tough one.

The main thing I can think of right now resolves around APIs.

For example, DBI became successful because it offers a uniform API to relational databases, and pluggable backends.

Maybe we can write a uniform API for user authentication, authorization and providing meta data (maybe also sessions)?

What are other areas that might benefit from uniform APIs and pluggable backends?

  • configuration
  • logging
  • administration frontends (?)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment