Skip to content

realdimik/c4proto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,861 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 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".

./app.pl build_all and ./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

 
 
 

Contributors

Languages

  • Scala 61.7%
  • JavaScript 32.6%
  • Perl 4.6%
  • Other 1.1%