Streaming microservices refers to a style of building large-scale software systems as a collection of independently deployable processes that communicate via persistent message streams rather than via remote procedure calls (RPC). A key distinction between streaming and RPC-based microservices is that streaming microservices provide a high degree of temporal decoupling between services. Not only does it not matter how a service does what it does, but it also matters much less exactly when it does it.
The use of streaming microservices is distinct from previous architectural trends such as Service Oriented Architecture (SOA) because the message streams used with streaming microservices are very simple, supporting little more than ordered delivery of messages organized into topics as opposed to the highly complex semantics supported by Enterprise Service Busses (ESB).
The term microservices as...
- Apache Software Foundation (2016a) Flink. http://flink.apache.org
- Apache Software Foundation (2016b) Spark structured streaming. https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html
- Dunning T, Friedman E (2016) Streaming architecture: new designs using Apache Kafka and MapR streams. O’Reilly Media, Inc., SebastopolGoogle Scholar
- Fowler M (2005) https://martinfowler.com/eaaDev/EventSourcing.html
- Fowler M, Lewis J (2014) Microservices. http://martinfowler.com/articles/microservices.html
- Friedman E, Tzoumas K (2016) Introduction to Apache flink: stream processing for real time and beyond. O’Reilly Media, Inc., SebastopolGoogle Scholar
- Johnston WM, Hanna JRP, Millar RJ (2004) Advances in dataflow programming languages. ACM Comput Surv 36(1):1–34. https://doi.org/10.1145/1013208.1013209. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.99.7265CrossRefGoogle Scholar
- Newman S (2015) Building microservices. O’Reilly Media, Inc., http://shop.oreilly.com/product/06369 20033158.do