Microservices
Temporal, Kratos, Go Kit & Istio seem interesting.
Is good thing to keep in mind.
Notes
- Microservices; the act of replacing every SQL query with a gRPC call.
- The single most effective thing you can do to improve the reliability, performance, and coherence of a distributed system is to minimize the required coördination and communication between nodes
- Don't solve problems you don't have. Most companies think they need microservices, for example. It is an extremely expensive proposition. Debugging anything becomes a nightmare and developer ergonomics are shot to hell. There is a reason why we stayed away from distributed services in the past. What, you think I could not have stitched together 20 different Python services on my machine in 2009 and put my productivity into paralysis? Don't fool yourself about things like Docker making things easier. It doesn't help people reason about distributed systems.
- Instagram? Monolith. 12 people when sold to Facebook. WhatsApp? Monolith. 32 people when sold to Facebook. StackOverflow. Monolith, with a lite SQL ORM for highly optimized queries.
- From a certain point of view microservices are the logical outcome of the endless game of hot-potato where everyone tries not to get caught with the state.
Links
- What are Microservices? (2019)
- StdLib - Service Creation, Deployment, and Management Tools.
- Hipster Shop: Cloud-Native Microservices Demo Application - Contains a 10-tier microservices application.
- Micro - Runtime for microservice development. (Web)
- Nitro - Fast framework for distributed app development, IoT, edge and p2p. (Web) (HN) (HN 2)
- Banking on Go - Matt Heath (2017)
- Envoy - Cloud-native high-performance edge/middle/service proxy. (Web) (5 years of Envoy OSS) (Example) (func-e)
- Dapr - Portable, event-driven, serverless runtime for building distributed applications across cloud and edge.
- Cilium - Open source software for providing and transparently securing network connectivity and loadbalancing between application workloads such as application containers or processes. (Web)
- Istio - Connect, secure, control, and observe services. (Web) (Community)
- 3 common pitfalls in microservice integration and how to avoid them (2018)
- So you want to learn Microservices? (2019) (HN)
- SuperGloo - Service Mesh Orchestration Platform.
- Kapow - Turn shell scripts into HTTP API endpoints. (Lobsters)
- Ask HN: How do you deal with atomicity in microservice environments? (2019)
- Go: Introduction to Protobuf: Services
- Go: Dependency injection with Wire (2019)
- Building Microservices with Go (2020)
- Micro-services (2020)
- Services Engineering Reading List
- Microservice background jobs in Go (2020)
- Istio as an Example of When Not to Do Microservices
- 7 tips on how to write kick-ass high performance Golang microservices (2020)
- Monoliths are the future by Kelsey Hightower (2020)
- The Dark Side of Microservices (2020) (Lobsters)
- Squash - Debugger for microservices.
- Blanket Solutions and Microservices
- Consistency is Consistently Undervalued (2016)
- Open Application Model Specification - Specification for building cloud native applications. (Code)
- We built network isolation for 1,500 services to make Monzo more secure (2019) (HN) (HN 2)
- Flagr - Feature flagging, A/B testing and dynamic configuration microservice.
- Lagom - Reactive Microservices for the JVM.
- Tyk API Gateway - Open source Enterprise API Gateway, supporting REST, GraphQL, TCP and gRPC protocols. (Web) (GitHub) (Docs)
- Why Segment Went Back to a Monolith (2020) (HN)
- NATS - Go Client - Golang client for NATS, the cloud native messaging system.
- Deleting data distributed throughout your microservices architecture (2020) (HN)
- Increasing Efficiency & Confidence with Project Apollo (2020)
- Microservices: Up and Running book (2020)
- Gizmo Microservice Toolkit - Provides packages to put together server and pubsub daemons.
- Go + Microservices = Go Kit - Peter Bourgon (2017)
- Conductor - Microservices orchestration engine. (Docs) (HN)
- When To Use Microservices (And When Not To) • Sam Newman & Martin Fowler (2020)
- Improve Your Micro-Services Debugging Environment (2020)
- Modern Banking in 1500 Microservices (2020)
- Horizon Network Service - Location Independent Routing Mesh.
- Autoscaling Monzo: How we optimise our platform to be just the right size (2020)
- Microservices – architecture nihilism in minimalism's clothes (2020) (HN)
- cote - Node.js library for building zero-configuration microservices.
- Go-Chassis - Microservice framework for rapid development of microservices in Go.
- Goa - Framework for building micro-services and APIs in Go using a unique design-first approach. (Web)
- Lab: Using GCP services to execute transactional workflows in microservices architecture
- Confidential Consortium Framework (CCF) - Open-source framework for building a new category of secure, highly available, and performant applications that focus on multi-party compute and data. (Docs)
- State of Microservices 2020 Report
- Podinfo - Tiny web application made with Go that showcases best practices of running microservices in Kubernetes.
- Building Go Web Applications and Microservices Using Gin (2020) (Code)
- Microservices on cloud-based Kubernetes
- Building a microservice with Rust (2021)
- The Netflix Cosmos Platform (2021) - Orchestrated Functions as a Microservice.
- Simplifying Microservices Debugging with Thundra Sidekick (2021)
- Ask HN: How do you keep track of releases/deployments of dozens micro-services? (2021)
- Disasters I've seen in a microservices world (2021) (Lobsters) (HN)
- Crossbar.io - Open source networking platform for distributed and microservice applications. (Code) (HN)
- Mesher - High performance service mesh implementation written in go.
- Sustainable microservices, my opinions and advice
- The Future of Microservices? More Abstractions (2021)
- RillRate - Dynamic UI for bots, microservices, and IoT. (GitHub) (Code)
- Patterns of Microservices Architecture
- Microservices Patterns Book (2018) - With examples in Java.
- Baker - Orchestrate microservice-based process flows.
- Polaris - Service Discovery and Governance Center for Distributed and Microservice Architecture.
- Serivce Builder - GRPC based Micro Service scaffolding in Go with HTTP/JSON gRPC gateway and OIDC / JWT Token based auth.
- Cloud Native GeoServer - GeoServer ready to use in the cloud through dockerized microservices. (Code)
- GitHub’s Journey from Monolith to Microservices (2021) (Tweet)
- Ergo - Cloud platform to enrich services made with Ergo Framework. (GitHub)
- Bootstrapping Microservices with Docker, Kubernetes, and Terraform Book (2021)
- mahou - Highly-opinionated yet quite magical research project into microservice-oriented application infrastructure. (Web)
- What could better cross-(micro)service messaging look like? (2021)
- Some Thoughts on Microservices (2021) (HN)
- Optimizing microservices for fast local development (2021) (Lobsters)
- Apache SkyWalking - Application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures. (Web)
- Don’t start with microservices – monoliths are your friend (2021) (Lobsters) (HN) (Reddit)
- Mockintosh - Mocks for microservice environments.
- Layotto - Fast and efficient cloud native application runtime. (Docs)
- The truth about starting with microservices (2022)
- Periskop - Pull based, language agnostic exception aggregator for microservice environments.
- Starlane - Resource Mesh that enables micro services to create, find, watch and use various micro resources across the enterprise as well as message other micro services.
- Cabourotte - Monitoring tool to execute healthchecks on your infrastructure.
- Understanding why Resilience Faults in Microservice Applications Occur (2022)
- Microservices: Why Are We Doing This? (2022) (HN)
- Authorization in a Microservices World (2022) (HN)
- Migrate from Monolith to Microservices (2020) (Tweet)
- Apache ShenYu - High-performance, multi-protocol, extensible, responsive API Gateway. (Code)
- Nacos - Easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
- 5 key elements of successful monolith-to-microservices migrations (2022)
- Airbnb’s Microservices Architecture Journey To Quality Engineering (2022) (Tweet)
- clue - Go packages for instrumenting microservices.
- Give me back my monolith (2019) (HN)
- DTM (Distributed Transactions Manager) - Distributed transaction framework that supports multiple languages, supports saga, tcc, xa, 2-phase message, outbox patterns.
- Kalix.io - High performance microservices and APIs. (Article)
- Orion - Small lightweight framework written around grpc/protobuf with the aim to shorten time to build microservices.
- Architecture design for microservice
- How to Improve Your Monolith Before Transitioning to Microservices (2022) (HN)
- You Don’t Need Microservices (2022) (Lobsters)
- Mammal - Sample Microservice in Go.
- RK-Boot - Build microservice with rk-boot and let the team take over clean and tidy code.
- Serverless Micro Services | M3O (Code) (HN)
- What do we really mean by microservice configuration? (2022)
- Sentinel - Sentinel of Your Microservices.
- Moduliths: because we need to scale, but we also cannot afford microservices (2022)
- Coroot - Monitoring and troubleshooting tool for microservice architectures.
- Go Microservices Example - Expose a HTTP/JSON frontend and then leverages gRPC for inter-service communication.
- You Want Modules, Not Microservices (2023) (HN)
- Spawn - Actor Mesh Serverless Platform.
- The Prime Video microservices to monolith story (2023) (HN)