Skip to content
forked from conecenter/c4proto

Microservice framework based on eventsourcing ideas (Protobuf, scalameta macros, Kafka, immutable model)

License

Notifications You must be signed in to change notification settings

disease/c4proto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

c4proto

This is a microservice framework based on eventsourcing ideas. Kafka is used by microservices to exchange messages and store application state changes. Protocol buffers are used to serialize messages (c4proto-*):

  • supports subset of protocol buffers
  • supports BigDecimal in messages and is extensible to support custom classes
  • messages are described by annotations on case classes
  • uses small wire-runtime
  • uses scalameta / macro paradise to generate protocol buffer adapters

Includes gate-microservice (c4gate-*) that:

  • serves all external requests, so other microservices can be freely moved
  • forward POST-s to Kafka topic
  • serves GET requests and raw TCP connections by content published to Kafka topic

Application state changes are consumed to in-memory immutable object graph (read model) (c4actor-*).

  • Changes are propogated through the graph according to dependency rules.
  • Propogation forms data structures optimized for different "requests".

usage sbt config example

./do.pl can help to run examples

About

Microservice framework based on eventsourcing ideas (Protobuf, scalameta macros, Kafka, immutable model)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 59.1%
  • JavaScript 35.4%
  • Perl 4.4%
  • Java 1.1%