just-core

A PHP Framework for Enterprise Service Buses

View project on GitHub

Architectural Principles

just-core was culled and refined from over a decade of practical experience in a number of distributed environments and developed with a number of driving influences:

  • A Response to “Overhead” in other frameworks
  • Pure self interest
  • The Need to Support Enterprise/Service Oriented Architecture environments at scale

Response to “Overhead” in other frameworks

Frustration with available frameworks in the language

  • Marketing BS deeper than a java memory leak
    • ascribing “magical” or non-required/non-existent properties like dependency injection to runtime languages/frameworks
  • trying to “do all, be all” for every possible feature and function
  • NOT abstracted solutions
    • that increase overhead for IP specific solutions by requiring rewrite
  • OVER abstracted solutions
    • incurring BLOAT factor
    • undermining the ability to optimize or “performance tune”
  • requiring the developer to learn a “new language”
    • by enforcing specific patterns through the entire application stack

Pure self interest

To save effort and frustration seek out the best in each work environment and learn hard lessons early:

  • your opinions how it “should work” mean nothing until it runs a clean stack trace
    • in a production environment
    • with a concurrency that forces load balancing
  • the biggest contrarian to your approach might be your greatest teacher
    • cover your blind spots
    • if you can’t pass the internal criticism benchmark don’t expect it to “survive the wild”
  • differentiate and learn from(save references to) good design patterns
  • Keep control of YOUR Intellectual Property
    • maintain the IP stack that is core to your business offering
    • keep it un-entangled from proprietary dependencies wherever possible

The project started as an attempt to pull a decade of lessons learned and a very fragmented personal tool kit into a coherent package to support personal as well as professional projects.

The project was migrated from sourceforge and subversion to github and git as a source control mechanism in 2014 as well as updated to address new standards in the language (PSR name-spaces) as well as new tools for

  • a Name-space/lazy loading mechanism
  • package / plugin management

which had been “standardized” with composer and packagist providing both public and private distribution channels.

The Need to Support Enterprise/Service Oriented Architecture environments at scale

Providing the Foundation Framework (minimum core services buses) required for any genuine enterprise level application at scale (minimum 100K concurrent connections)

  • boot-strapping servers or applications with configuration management for multiple environments
  • Clear and consistent interfaces for core services
    • Authentication/Authorization support
    • Data Store Access
    • Caching
    • Agnosticism towards the transport layer
    • logging and auditing
  • Ability to easily extend or replace any given service class/api/layer