the startup
🚀

architecture

 

startup
is a

state-of-mind

it’s when

people join your company

and are still making the explicit decision to

forgo stability

in exchange for

the promise of

tremendous growth

and the

excitement of making immediate impact.

in a startup

  • business requirements are dynamic 
  • emerging technologies give an edge over the competition 
  • mixed bag of young and experienced people
  • innovations and experiments are vital
  • uncertainties in direction and financial resources

architectural attempts

monoliths

  • one runtime entry point for everything
  • boundaries are from thin to non-existent

+ early people contribute in a tremendous pace

+ early features are rolling out on daily basis

- hacks are prone to leak

- new technologies are often incompatible

microservices

  • multiple runtime entry points
  • boundaries are strong but too fine-grained

+ implementation details are highly encapsulated

+ cherry-pick best fit technology for each task

- interfaces are prone to be premature abstractions

- runtime dependencies are even more complex

what worse?

a monolith in its transition to microservices

what are the needs

  • short release cycles
  • disposable business requirements
  • isolated hacks
  • short time-to-contribution
  • technological playground

Hypothesis

If we can provide an architecture that

  1. low coupling:
    allows every owner can spin up or discard a component independently, and
  2. high cohesive:
    maintain a universal communication mechanism among components

Then release and feedback cycles can be shorten while every projects can go full speed without blocking each other.

Solution

one of them

what if every team can work in an isolated island?

What is an Island?

  • Single responsibility piece of software
  • Must have a human interactive UI
  • May not have any knowledge about other islands*
  • Island's owners decide how it is built
  • Start/stop on its own

What is in an Island?

How do data get updated?

How about other islands?

zooming out

Self-contained Services

By tungv

Self-contained Services

  • 293