1972
Parnas publishes criteria for decomposing systems
David Parnas framed module decomposition around information hiding, giving architectural boundaries a change-oriented basis.
Infrastructure and operations
How the field of a Solutions Architect got here: the sourced milestones from every published course of this career, on one axis.
1972 to 2026
289 milestones across 31 courses
The axis stretches toward recent years, where most milestones fall. Bars count milestones per year; dots are single milestones.
15 milestones
1972
David Parnas framed module decomposition around information hiding, giving architectural boundaries a change-oriented basis.
1972 Dec
Parnas described decomposing modules around design decisions likely to change. The idea made change isolation a concrete architectural concern.
1976
A formal model described distributed database transaction processing, establishing the problem of coordinating work across sites. It supplied a basis for later commit and recovery protocols.
1978
Jim Gray's notes set out the systems concerns around reliable transaction processing. Commit processing became a distinct recovery and coordination problem rather than only a database API detail.
1978
Lamport defined happened-before as a partial order generated by process order and message send and receive. The paper gave distributed systems a way to reason about causality without assuming synchronized physical clocks.
1978
Time, Clocks, and the Ordering of Events in a Distributed System introduced happened-before and logical clocks. It gave distributed programs a way to reason about causal order without one perfect physical clock.
1982
Lamport, Shostak, and Pease described agreement when faulty participants can send conflicting information. The result distinguished arbitrary behavior from ordinary crash failures in protocol design.
1983
Fischer, Lynch, and Paterson showed that deterministic consensus cannot guarantee termination in a completely asynchronous system when one process may crash. Practice separates safety guarantees from the timing assumptions needed for progress.
1985
Fischer, Lynch, and Paterson proved that deterministic consensus cannot guarantee termination in every fully asynchronous execution with one possible crash. Practical protocols therefore state additional timing or liveness assumptions.
1986 Dec
The R* distributed database paper described transaction management and commit protocol performance in a production-oriented distributed system. It made the operational cost of distributed commit a practical design concern.
1987
Zachman's framework organized architecture descriptions by perspectives and interrogatives. It established the need for coordinated enterprise views.
1987 Dec
Garcia-Molina and Salem publish Sagas for long-lived transactions. The paper frames work as independently committed steps with compensations for partial execution.
1987 Dec
Garcia-Molina and Salem proposed sagas for long-lived transactions as sequences of smaller transactions with compensating actions. This separated business recovery from holding one long atomic lock boundary.
1988
Dwork, Lynch, and Stockmeyer formalized timing models between full synchrony and full asynchrony. Protocols could retain safety while basing eventual progress on bounds that hold only after an unknown stabilization point.
1989
Lamport's Paxos work framed agreement around numbered proposals, promises, and quorum acceptance. It supplied a durable vocabulary for preserving one chosen value across competing rounds.
18 milestones
1990
Lamport presented the Paxos protocol for reaching agreement among processors. Paxos became a core reference for using quorum overlap to preserve a shared decision despite failures.
1991
Bell Labs researchers release Graphviz, an open-source graph visualization package that renders DOT language descriptions into diagrams. It establishes the idea that graphs can be defined in text and rendered automatically, predating the diagram-as-code movement by over a decade.
1991
The X/Open DTP model standardized the vocabulary of application programs, transaction managers, and resource managers. XA made interoperable two-phase commit a deployable integration boundary.
1992
Work on architectural styles and abstractions separated system-level structure from individual program modules. Architecture became a subject that could be described and analyzed directly.
1993 Apr
Research compared several two-phase commit variations for commercial environments. It highlighted that normal-case optimizations change recovery and logging tradeoffs rather than removing the commit problem.
1993 Dec
IBM delivered MQSeries V1 in December 1993. It established store-and-forward messaging as enterprise integration infrastructure.
1994
The SEI introduction presented architectural representations and styles for reasoning about complex systems. It gave practitioners vocabulary beyond implementation diagrams.
1995
Philippe Kruchten described logical, process, development, physical, and scenario views for different architecture concerns.
1995
The Open Group published the first TOGAF version, built on the US Department of Defense TAFIM methodology, as a technical architecture framework.
1996
Buschmann and colleagues published patterns including layers, pipes and filters, and broker structures.
1996 Jun
The unified modeling effort published UML 0.9. It gave software teams an early common notation for expressing structural and behavioral designs.
1997
The Object Management Group adopts the Unified Modeling Language 1.0, standardizing notation for class, sequence, use case, and activity diagrams. UML gives software teams a shared vocabulary for structural and behavioral modeling that persists through subsequent revisions.
1997 Sep
OMG adopted UML 1.1 as its first formal UML version. Standardized notation made diagrams more portable across modeling tools and organizations.
1998
Lamport's Paxos paper described a protocol for reaching agreement despite failures. It made ordered decisions and quorum overlap central ideas for replicated state.
1998
The published Paxos account made the protocol's safety argument and system model available as a citable primary description. It became a reference point for later multi-instance consensus systems.
1998 Aug
JMS 1.0 introduced a common Java API for messages, consumers, acknowledgement, and delivery modes. It made queue and publish-subscribe concepts portable across Java messaging providers.
1999
FEAF gave US federal agencies a common construct for architecture descriptions across business, data, applications, and technology.
1999
Castro and Liskov presented Practical Byzantine Fault Tolerance for replicated state machines with arbitrary faulty replicas. The work made the fault model an explicit design choice rather than an assumed extension of crash tolerance.
58 milestones
2000
REST described architectural constraints for networked hypermedia systems, giving HTTP API designers a vocabulary for resources, representations, and uniform-interface tradeoffs.
2000
IEEE 1471 defined a framework for software-intensive systems and their architecture descriptions.
2000
Roy Fielding’s dissertation documented REST as an architectural style, including the uniform interface, resources, representations, and stateless interaction. It gave HTTP API designers a vocabulary for resource-oriented contracts.
2000 May
W3C published SOAP 1.1 as a Note for XML-based message exchange. Contract-first web services commonly paired these messages with explicit service descriptions.
2000 Aug
The SEI published ATAM for evaluating candidate architectures against competing quality attributes.
2000 Sep
IEEE 1471 defined architecture description around stakeholders, concerns, viewpoints, and views. It made the audience and purpose of a representation explicit.
2001
Discussions about the missing treatment of message-based integration started while Patterns of Enterprise Application Architecture was being developed.
2001
Lamport's concise Paxos presentation centered promises, accepted values, and quorum intersection. It gave practitioners a direct path from a single chosen value toward repeated decisions.
2001
TOGAF 7, the Technical Edition, narrowed the framework toward technical architecture before the broader enterprise scope arrived with version 8.
2002
Gilbert and Lynch formalized the consistency and availability tradeoff for atomic read-and-write objects during a network partition. It moved CAP from a design slogan toward precise failure-condition reasoning.
2002
Two papers on integration patterns were submitted to the Pattern Languages of Programs conference, forming the basis for the later book.
2002
TOGAF 8 expanded the framework from technical architecture to enterprise architecture, the scope the ADM still organizes today.
2002
TOGAF Version 8 applied its development method to business, data, application, and technical architecture.
2003
The book and companion site made the pattern language available as a shared vocabulary for integration design.
2003
GFS described a distributed file system built for large, unreliable clusters. Its design made failure handling and recovery first-class parts of an application storage system.
2003
GFS described a distributed file system for data-intensive applications on commodity machines. Its design treated failure and aggregate performance as normal operating concerns.
2003
An updated 8.1 release corrected and clarified the version 8 enterprise-architecture material.
2004
The AMQP effort started as an open protocol for business messaging. It put interoperability between messaging implementations on the agenda rather than leaving queue behavior entirely vendor-specific.
2004
MapReduce described a model that lets a runtime manage partitioning, scheduling, communication, and machine failures around map and reduce functions. It showed how a narrow interface can hide substantial distributed coordination.
2004
MapReduce presented map and reduce functions while the runtime handled partitioning, scheduling, communication, and failure handling. The model made large parallel batch computation easier to express.
2004 Jul
The Jericho Forum argued that a hard trusted-inside boundary could not support open collaboration. Its presentation shifted protection toward data, systems, interoperable controls, and defense in depth.
2004 Aug
Gray and Lamport described Paxos Commit, using consensus on participant outcomes to tolerate coordinator failures. The work made replicated decision recording an explicit alternative to ordinary coordinator blocking.
2005 Jul
OMG adopted UML 2.0. The major revision preserved UML as a formal option when a view needs defined modeling semantics rather than informal boxes and lines.
2005 Dec
Martin Fowler describes storing application changes as an event sequence. That model later supports rebuilding query-focused state from published changes.
2006
Amazon EC2 made compute capacity available on demand. Infrastructure design began to treat compute as an elastic service with explicit capacity and cost behavior.
2006
Bigtable described a distributed storage system for structured data that partitions tables into tablets and manages them across a cluster. It made data placement and replication architecture central to application-scale storage.
2006
Bigtable documented a distributed storage system for structured data across thousands of commodity servers. It connected data layout choices to workloads with different scale and latency needs.
2006
Simon Brown traces the C4 model roots to workshops in the mid-2000s.
2006
The Open Group released TOGAF 8.1.1 as the consolidated 8.x edition, around which TOGAF became a registered trademark of The Open Group.
2006 Mar
Amazon S3 made durable object storage available as an Internet service. Storage could become a separately selected architectural component rather than a resource provisioned with a server.
2006 Jun
AMQP 0.8 became the first published protocol version. It gave early brokers a shared wire-level target for queues, channels, and message transfer.
2006 Aug
Amazon announced resizable compute capacity available through a web-service interface. It made acquiring and changing application capacity an API-driven operation rather than a server-procurement event.
2006 Aug 24
Amazon introduced resizable compute capacity as a web service. It made obtaining and configuring compute capacity a cloud service concern rather than a data-center procurement task.
2006 Nov
API documentation, community management, and access control became a managed service.
2007
Dynamo described a highly available key-value store that sacrifices consistency in some failure scenarios. It made conflict handling and tunable replication part of an application's storage contract.
2007
Dynamo documented consistent-hash partitioning, replication, read and write thresholds, repair, and application-assisted conflict resolution. It supplied a practical vocabulary for availability-oriented replicated storage.
2007
ISO/IEC 42010 carried the architecture-description concepts into an international standard. Teams could use a common framework for organizing views around concerns.
2007
PlantUML publishes its initial version, offering a text-to-UML rendering pipeline. It makes UML diagram generation accessible from plain text, establishing a pattern that later tools like Mermaid would follow with simpler syntax.
2007
A joint venture of LShift and CohesiveFT began building an open-source message broker implementing AMQP 0-9-1, written in Erlang on the OTP framework. It established the exchange-queue-binding model the broker still uses.
2007 Feb
RabbitMQ's first public release provided an open-source AMQP implementation. It made an interoperable broker available to application teams rather than only to commercial middleware users.
2007 May
The commandments documented design principles for systems operating beyond a fixed perimeter. They connected open networks with data protection, identity, trust, and policy enforcement.
2007 Jun
Apache Camel released its first version with an EIP-oriented route model, giving Java teams executable forms of the catalog's patterns.
2007 Jun
WSDL 2.0 standardized service descriptions with HTTP and SOAP support. It kept operations, messages, and bindings explicit and separate from service implementation.
2007 Dec
Spring announced an integration framework explicitly inspired by Enterprise Integration Patterns and aimed at message-driven application integration.
2008
Google introduced App Engine as a managed application runtime. This established a platform-as-a-service option that shifts more runtime responsibility to the provider.
2008
Lucidchart launches as a browser-based collaborative diagramming tool, making real-time co-authoring of diagrams accessible without desktop software. It demonstrates that the web can support professional-grade diagramming workflows.
2008 Jan
The first 1.0 milestone made the new Spring integration project available for evaluation.
2008 Apr
Google introduced App Engine as a managed application platform. It established a model in which application code could run without the team managing servers directly.
2008 Apr
Google made a managed application platform available to early developers. Migration choices could now include moving an application to a managed runtime rather than only moving virtual machines.
2008 Jul
Google released Protocol Buffers, its schema language and binary message format, as open source. It later became the default interface definition language and message format that gRPC service definitions are written in.
2008 Sep
Public exposure of the broker as an AMQP implementation, with client libraries planned for multiple languages. It positioned RabbitMQ as a general-purpose message-oriented middleware rather than a single-language library.
2008 Oct
Microsoft announced a platform combining hosted storage, compute, and networking services. The design scope explicitly included cloud, on-premises, and combined deployments.
2009
Amazon introduced VPC to connect existing networks to isolated cloud resources through a VPN. Network and administrative boundaries became first-class cloud architecture decisions.
2009
TOGAF 9 added a formal Content Metamodel linking ADM artifacts, an architecture repository, and the Enterprise Continuum, moving the framework from guidance toward a structured method.
2009
TOGAF Version 9 became the certification baseline for the 9.x line and its later revisions.
2009 Feb
ArchiMate 1.0 made a shared notation for describing and analyzing enterprise architecture available as an Open Group standard.
2009 Feb
Spring described the 1.0 GA release and demonstrated channels, service activators, and adapters as a practical integration flow.
2009 Aug
Camel 2.0 introduced a redesigned component model while retaining EIP-oriented route structure.
136 milestones
2010
The context, container, component, and class diagram types were named. The set gave software teams a compact hierarchy for explaining structure at different zoom levels.
2010
The four diagram types were named in early 2010. Their sequence made progressive disclosure a repeatable way to control abstraction.
2010 Feb 1
Microsoft announced production availability of Windows Azure and SQL Azure in 21 countries. Public cloud became a production destination for application and database workloads across another major platform.
2010 Apr
Rabbit Technologies was acquired by SpringSource, a division of VMware, moving the project under commercial stewardship while keeping the source under the Mozilla Public License.
2010 Aug
John Kindervag's webinar named a zero-trust model that treated all users as untrusted and placed security throughout the network rather than only at its edge.
2010 Aug
RabbitMQ 2.0 introduced a scalable storage engine and persistence API. Slow-consumer behavior and retained-message capacity became more explicit operational concerns for broker deployments.
2010 Nov
Greg Young's CQRS Documents publishes guidance that connects command-query separation with event sourcing. It gives a shared vocabulary for separate write and read models.
2011
The C4 name was first used in early 2011. It gave the levels a compact vocabulary for discussing scoped software architecture views.
2011
ISO/IEC/IEEE 42010 succeeded IEEE 1471 as the architecture-description standard.
2011
Derek Collison released NATS, originally written in Ruby as the messaging control plane for Cloud Foundry. It established the subject-based publish-subscribe model the system still uses, optimized for a small footprint and low latency rather than persistence.
2011
The C4 name made the four-level diagramming approach identifiable and teachable. It emphasized communicating a software system with a small, consistent set of views.
2011
The 9.1 revision corrected and consolidated the version 9 material and became the long-stable edition many certified tools and courses targeted.
2011
The Open Group records Version 9.1 as the 2011 revision to the established TOGAF method.
2011
The methodology collected portable-service practices such as external configuration, backing services, stateless processes, and build-release-run separation. Those practices remain design inputs for replaceable cloud workloads.
2011 May
A workshop of software architects used the term for a style they had been exploring. The discussion gave a name to independently deployable service-based systems.
2011 Jul
Kafka entered incubation as a distributed publish and subscribe project. Apache stewardship established the open project that later became a common event-log implementation.
2011 Aug
The first Swagger Specification formalized a machine-readable description for HTTP APIs. That description could drive documentation and tooling from a contract rather than prose alone.
2011 Aug 10
The first formal Swagger specification made an HTTP API description available as a machine-readable artifact for documentation and tooling.
2011 Sep
NIST formalized cloud computing through essential characteristics, service models, and deployment models. The framework made responsibility boundaries and deployment choices easier to describe consistently.
2011 Oct
AMQP 1.0 was published after a protocol redesign from earlier AMQP versions. Practitioners had to distinguish AMQP 1.0 from the widely used AMQP 0.9.1 family rather than treating AMQP as one interchangeable wire protocol.
2011 Nov
Michael Nygard published a concise record format for individual decisions.
2011 Nov
The joint revision superseded IEEE 1471 and ISO/IEC 42010:2007. It continued the stakeholder, concern, viewpoint, and view model for systems and software architecture.
2012
The server was rewritten in Go, which became the language the nats-server binary has shipped in since. The rewrite set the single-binary, high-throughput, low-latency properties the project is known for.
2012
Raft organized consensus around leader election, log replication, and safety. Its decomposition made it easier to connect a replicated log with the state-machine model used by production coordination systems.
2012
Spanner documented synchronously replicated data and externally consistent distributed transactions at global scale. It exposed clock uncertainty as part of the system design.
2012
Spanner described synchronous replication and externally consistent transactions across geographic regions. It showed the operational cost of combining distributed consensus with a clock-uncertainty API.
2012 Jan
ArchiMate 2.0 added a more closely aligned language for integrated enterprise models, including motivation and migration paths.
2012 Mar
James Lewis presented a case study connecting the style to Unix-like service composition. The example helped make the emerging approach concrete for practitioners.
2012 Apr
Chris Richardson presented independently deployable services as an answer for applications where a monolith was not appropriate. The talk emphasized decomposition for deployability and scaling.
2012 Jun
An open-source platform covered API creation, governance, security, and monitoring.
2012 Jun 28
Google announced general-purpose virtual machines alongside its managed application platform. A migration could preserve a VM-oriented operating model when a managed runtime was not suitable.
2012 Oct
OASIS approved AMQP 1.0 as a standard. The standardization strengthened the option of protocol-level interoperability for message-oriented middleware.
2012 Oct
Kafka graduated from the Apache Incubator. The project then continued as an Apache top-level project.
2012 Oct
Kafka graduated as an Apache top-level project. The project formalized an open ecosystem around partitioned, persistent event streams.
2013
Docker made a packaged container workflow broadly available to developers. It helped establish the application artifact model later used by container orchestrators.
2013
Ongaro and Ousterhout introduced Raft with separate leader election, log replication, and safety components. Its explicit leader model made replicated-log behavior easier to inspect and teach.
2013 Mar
Docker made a developer-facing workflow for packaging and distributing containerized applications widely available. Container images became a practical immutable-artifact format for many delivery pipelines.
2013 May
RabbitMQ became part of Pivotal Software, the VMware-EMC spin-out, which reorganized the broker alongside Spring and other developer tools. The broker model and protocol surface stayed unchanged.
2013 Dec
Kafka 0.8.0 shipped the replication work that made broker failure a durability and availability design concern rather than a single-broker outage.
2014
Google described removing the privileged intranet and making access depend on users and devices. The paper supplied a production example of resource access without location-based trust.
2014
Knut Sveidqvist publishes Mermaid, a JavaScript library that generates diagrams from Markdown-like text syntax. Its integration into GitHub's Markdown renderer makes diagram-as-code practical in pull requests and documentation without any external tooling.
2014
James Lewis and Martin Fowler described independently deployable services around business capabilities.
2014
Raft separated consensus into leader election, log replication, and safety. Its presentation made a practical replicated state machine easier to reason about and implement.
2014
The Raft paper received a Best Paper Award at the 2014 USENIX Annual Technical Conference. Its publication and accompanying materials widened access to a leader-based consensus design for systems builders.
2014 Mar
The article described common characteristics such as business-capability organization, decentralized data management, and infrastructure automation. It made the architectural tradeoffs broadly discussable.
2014 Mar
The 0.8.1 release continued the replicated-log generation and provided a stable base for production adoption of partition leaders and in-sync replicas.
2014 Mar
James Lewis and Martin Fowler publish their microservices article in installments. It gives the service-oriented context in which cross-service data patterns become operational concerns.
2014 Jun
Google announced Kubernetes as an open-source container manager. It brought a declarative, clustered control model to containerized workloads.
2014 Jun
Google engineers created Kubernetes. A portable control plane for containerized workloads became a practical architectural option for distributed application deployment.
2014 Jun
Kubernetes was released as an open-source container-management project. It brought scheduling, deployment, scaling, and workload management into a common platform vocabulary.
2014 Aug
Martin Fowler distinguished service boundaries from pretending remote calls are local objects. The warning reinforced explicit treatment of network failure and remote behavior.
2014 Sep
Swagger 2.0 expanded the formal API description. It made a portable contract a more practical input to code generation, validation, and reference documentation.
2014 Sep 8
Swagger 2.0 expanded the formal contract model before the specification moved into open governance.
2014 Oct
MQTT 3.1.1 standardized a lightweight client-server publish-subscribe transport. It gave constrained and IoT environments a common messaging protocol.
2014 Nov
The Java DSL gave Spring Integration users a code-first way to express integration flows.
2015
Development and stewardship moved through Apcera, where Derek Collison was CEO, seeding the commercial path that would become Synadia. The project kept its Apache 2.0 license while a company formed around it.
2015
The fourth level changed from classes to code during 2015–2016. The change avoided implying that every codebase should be explained through class diagrams.
2015
C4 began replacing the class-level label with code during 2015 and 2016. The change clarified that detailed implementation views are optional and technology-specific.
2015
RabbitMQ 3.6 added lazy queues as an option for queues that can become long. The feature highlighted disk and memory behavior as a capacity decision, not a detail hidden by the queue abstraction.
2015 Feb
Google introduced gRPC, a remote procedure call framework built on HTTP/2 with generated clients and servers for several languages. It generalized Stubby, the RPC system Google had used internally since about 2001.
2015 Mar
LinkedIn described tiered clusters and audit counts that checked delivery from producers through downstream consumers. The operational model made end-to-end completeness a concern beyond broker health.
2015 Apr
API and microservice management became a cloud-native self-managed option.
2015 May
The IETF published HTTP/2, which supplies the multiplexed streams and binary framing gRPC uses as its transport. gRPC standardized on HTTP/2 rather than defining its own wire transport.
2015 Jun
Kubernetes 1.0 established a production container-orchestration platform with a stable API. It gave service fleets a common way to schedule and manage workloads.
2015 Jul
AWS introduced managed API publication, security, monitoring, and versioning.
2015 Jul
The CNCF was announced to advance common technologies for container-packaged, dynamically scheduled, microservices-oriented applications. Architecture practice gained a neutral home for shared cloud native infrastructure.
2015 Jul
Kubernetes reached 1.0 and was donated to the newly formed CNCF. The project gained a vendor-neutral foundation for shared cloud native infrastructure.
2015 Jul
Kubernetes reached version 1.0 and was contributed to the newly formed Cloud Native Computing Foundation. The project then had a vendor-neutral home for shared governance and ecosystem work.
2015 Nov
Kafka 0.9.0 added Kafka Connect, creating a framework for reusable source and sink integrations instead of application-specific movement for every system.
2015 Dec
The release series that became the long-running production baseline, with improved clustering and a new rabbitmqctl. It was the version many teams first met in production.
2015 Dec
The Swagger 2.0 specification was donated to the OpenAPI Initiative. The description format then moved under vendor-neutral governance as OpenAPI.
2015 Dec 31
The donation moved the description format into vendor-neutral stewardship, which matters when a platform contract outlives one implementation choice.
2016
Pulsar was committed to open source. It expanded the set of distributed messaging and streaming implementations available to practitioners.
2016
Google documented deployment experience with dynamic device trust tiers. Zero trust moved from a high-level perimeter critique toward an operated access model.
2016
The C4 history records the transition away from the class label. This reinforced the distinction between a component view and whatever code-level detail is useful for a particular system.
2016
Envoy, an L7 proxy designed for cloud-native applications, was created at Lyft and contributed to the CNCF. It became the data-plane building block most service meshes, including Istio, would build on.
2016
Istio was founded by Google, IBM, and Lyft as a CNCF project, with Envoy as its data plane. It framed the data-plane and control-plane split that became the canonical mesh architecture.
2016
Buoyant announced Linkerd, built on the Finagle RPC stack, as the first project to call itself a service mesh. It framed the category: an infrastructure layer for service-to-service communication.
2016
NATS Streaming, known as STAN, added a persistence layer on top of Core NATS for at-least-once delivery and replay. It was the first answer to "what if a message must survive time" before JetStream replaced it.
2016
Version 3 simplified the schema language, removed required fields, and added a canonical JSON mapping. proto3 became the recommended syntax for new gRPC service and message definitions.
2016 Mar
CNCF accepted Kubernetes and transferred its intellectual property to the Foundation. This formalized a neutral governance path for a core cloud-native platform.
2016 Mar
Kubernetes became the CNCF’s first hosted project. Its control-plane model moved from a single-provider origin into a vendor-neutral cloud native ecosystem.
2016 Mar 15
AWS made its database migration service available to all customers. Replication and schema conversion became dedicated capabilities in migration planning rather than entirely custom work.
2016 May
Kafka 0.10.0.0 introduced Kafka Streams, making a Java client library part of the path for transformations, joins, and aggregations over topic data.
2016 May
Prometheus joined CNCF as an early monitoring project. Metrics became a prominent common component of cloud native operational practice.
2016 Jul
ArchiMate 3.0 introduced strategic concepts such as capability, resource, and outcome, plus physical-world modeling.
2016 Aug
gRPC 1.0 established a stable protocol and API surface for service contracts, including streaming call forms. API design work could therefore apply contract thinking beyond HTTP resource APIs.
2016 Sep
Pulsar became an Apache Incubator project, moving its development into the Apache community.
2016 Sep
Envoy brought an edge and service proxy to cloud-native infrastructure.
2016 Nov
API management became part of a major cloud platform portfolio.
2017
Uber released Cadence, an open-source engine for scalable, fault-tolerant, long-running workflows. It established the Workflow-and-Activity model and Event-History replay that Temporal later inherited.
2017 Mar
Google donated gRPC to the CNCF as an incubating project and relicensed it under Apache 2.0. Stewardship moved from a single vendor to a foundation.
2017 May
Istio introduced a service-mesh approach for managing traffic, policy, and telemetry between services. This separated some cross-cutting network concerns from application code.
2017 Jun
Kafka 0.11 made idempotent and transactional producer modes available, which enabled atomic Kafka output and consumed-offset commits within a defined boundary.
2017 Jun
The project documented why a connection-level load balancer sends every call on one channel to the same backend, and set out L7, client-side, and lookaside balancing as the alternatives. This shaped how gRPC is deployed behind proxies and meshes.
2017 Jul
OpenAPI 3.0 introduced a major revision of the HTTP API description format. Design reviews could use a standard artifact for paths, operations, schemas, responses, and security requirements.
2017 Jul 26
OpenAPI 3.0 established the next major revision of the HTTP API description format used for contract review and tooling.
2017 Aug 14
AWS introduced a central view for tracking migrations across AWS and partner tools. Portfolio-level progress and issue visibility became a separate migration-management concern.
2017 Sep
The project continued its incubating release line before the 2.x platform releases.
2017 Sep 25
Microsoft introduced discovery, assessment, dependency mapping, rightsizing, and compatibility reporting for Azure migrations. Discovery evidence became more directly connected to target planning.
2017 Nov
Kafka 1.0.0 included improvements for exactly-once semantics. The release made transactional processing a documented part of the platform's delivery toolkit.
2017 Nov
The conformance program established a common experience across Kubernetes offerings. It made portability and consistent upgrades a more explicit concern when selecting a managed platform.
2018
Simon Brown publishes the C4 model, a framework for software architecture diagrams organized as four zoom levels: context, container, component, and code. It provides the progressive-disclosure discipline that this course teaches as the primary approach to choosing view types.
2018
The C4 model changed its fourth diagram type from classes to code, reinforcing that code detail is optional.
2018
Istio 1.0 marked production-readiness for the sidecar-based mesh, with mTLS, traffic management, and telemetry. It began the period of large-scale enterprise adoption and the first wave of "should we adopt a mesh" decisions.
2018
Linkerd 2.0 was rewritten in Rust and Go on top of Envoy, moving to the same data-plane substrate as Istio while keeping a smaller control surface. It established the lightweight-mesh alternative that persists today.
2018
TOGAF 9.2 updated the Business Architecture and Content Metamodel material and removed obsolete content, making the framework easier to use and maintain.
2018
The Open Group records Version 9.2 as the 2018 update in the TOGAF 9.x series.
2018 Feb
3.7 introduced a layered configuration format and a peer-discovery subsystem for cluster formation, making reproducible cluster setup practical for the first time.
2018 Mar
A 2018 C4 presentation completed the switch to code as the fourth level. Teams could then describe the zoom sequence without implying that every implementation view is a class diagram.
2018 Mar
CNCF graduated Kubernetes after evaluating adoption, governance, and community criteria. The milestone marked maturation of a widely used container-orchestration foundation.
2018 Mar
CNCF graduated Kubernetes after its maturity review. Practitioners increasingly treated Kubernetes as a stable shared control-plane foundation.
2018 Mar
Kubernetes became the first project to graduate from CNCF. Container orchestration had become an established option for managing distributed workload placement and lifecycle.
2018 Mar
The Cloud Native Computing Foundation accepted NATS as a hosted project on 15 March 2018, giving the project a neutral stewardship home alongside Kubernetes and Prometheus. It confirmed the system as cloud-native infrastructure rather than a single-company product.
2018 Apr
The 2.0 line established the major-version release series used by later platform features.
2018 Aug
Camunda documented orchestration of microservice transactions with compensation events. The example reflects the shift from shared resource managers toward durable workflow coordination.
2018 Aug
The release added the connector framework and storage offload capabilities that widened the platform beyond brokered delivery.
2018 Sep
Pulsar graduated as an Apache top-level project. Its governance milestone reflected the growth of a separate streaming ecosystem.
2018 Sep 24
Microsoft described Azure Migrate, Azure Database Migration Service, and Azure Data Box as migration capabilities. Different workload components could use specialized discovery, data, and transport services.
2018 Oct
A stable JavaScript client library let browser code call gRPC services through a translating proxy such as Envoy. It made gRPC reachable from the browser without a hand-written REST layer, within limits on client and bidirectional streaming.
2018 Nov
Chris Richardson's book collects patterns for microservice transactions, querying, and communication. Saga, transactional outbox, and CQRS become a coherent implementation vocabulary.
2018 Nov
Team RabbitMQ previewed quorum queues, a Raft-replicated queue type aimed at replacing classic mirrored queues with a safer, easier-to-operate replication model.
2019
The Service Mesh Interface (SMI) spec was launched to standardize a subset of mesh configuration across implementations, so that traffic policy could be portable between meshes. It formalized the idea that the mesh is pluggable.
2019
The original Cadence authors started Temporal Technologies and forked the project, carrying forward durable execution while re-architecting the platform and building a company around it.
2019 Feb
Eventuate documents saga and CQRS for cross-service data management, with transactional outbox for atomic state change and message publication. The guidance makes the pattern dependencies explicit in an implementation framework.
2019 May
OpenCensus and OpenTracing announced their merger into OpenTelemetry. The project aimed to provide common APIs and tooling for distributed telemetry.
2019 May
OpenTelemetry combined OpenCensus and OpenTracing work toward common telemetry APIs and data collection. It strengthened the practical expectation that requests can be traced across service boundaries.
2019 Aug
A microservices.io saga coordination article specifies transactional outbox as a way to publish a saga message in the same database transaction. The guidance focuses implementation attention on the commit-to-publish failure window.
2019 Sep
AsyncAPI 2.0 provided a specification for asynchronous APIs. Message channels, publishers, subscribers, and message schemas became first-class contract elements.
2019 Sep
The draft defined logical components, deployment models, use cases, and a migration roadmap in technology-neutral language. Public review began a shared architecture vocabulary beyond individual vendor or enterprise designs.
2019 Sep
The 2.5 release continued the stable Apache Pulsar release line after incubation.
2019 Sep 11
AsyncAPI 2.0 provided a machine-readable description format for asynchronous interfaces, extending contract-first practice beyond request-response APIs.
2019 Oct
CloudEvents 1.0 defined common event metadata and transport bindings. It improved portability of event descriptions across services and platforms.
2019 Nov
Camel 3.0 marked a major internal restructuring while preserving its public route model for integration patterns.
2019 Nov
3.8 made quorum queues generally available and shifted the recommended path for durable, replicated workloads away from classic mirrored queues. The 3.8 series reached end of life in July 2022.
2019 Dec
Pivotal was acquired back by VMware, returning RabbitMQ to VMware stewardship and eventually to Broadcom's Tanzu group, where the broker has remained commercially supported since.
62 milestones
2020
JetStream replaced NATS Streaming as the built-in persistence layer, integrated into the nats-server binary rather than a separate process. It brought streams, consumers, at-least-once delivery, and replay under one server, removing the operational split STAN required.
2020
Leaf nodes and super-clusters gave NATS a topology that extended to the edge and spanned regions, making one logical messaging fabric cover cloud, edge, and bridged systems. It moved NATS from a cluster product to a connective tissue across environments.
2020
Structurizr publishes a domain-specific language for defining C4 model diagrams as code. It ties architecture documentation to a text source that can be versioned, reviewed, and rendered into the four C4 view types automatically.
2020 Feb
Temporal published its early open-source server builds, beginning the public v0.x line that let teams run the Service themselves ahead of a stable release.
2020 May
CNCF graduation marked Kubernetes as a mature project under the foundation's criteria. The ecosystem around running and operating service fleets had become a mainstream platform foundation.
2020 Aug
Version 1.19 stabilized host and route configuration for incoming HTTP traffic.
2020 Aug
The final publication established zero trust tenets, policy engine, policy administrator, policy enforcement point, trust-algorithm inputs, threats, and deployment approaches as a reference architecture.
2020 Aug
The 2.6 release continued the platform’s regular feature-release cadence.
2020 Sep 30
The Go SDK reached a stable 1.0.0 alongside the server, giving the first production-supported way to write Workflows and Activities and run Workers against the platform.
2020 Sep 30
The 1.0.0 release marked the Temporal Server as production-ready, stabilizing the durable-execution runtime and its APIs for adopters.
2020 Dec
A pure-JavaScript implementation for Node.js reached 1.0 and replaced the C-based add-on as the recommended library, removing a native build step from Node deployments.
2020 Dec
Kubernetes announced the future removal of its built-in Docker Engine adapter. Cluster operators had to identify runtime dependencies and move toward CRI-compatible runtimes.
2021
HashiCorp Consul Connect and the CNCF Kuma project broadened the mesh field beyond Istio and Linkerd, offering mesh capability integrated with service discovery and multi-platform deployment respectively.
2021
Temporal introduced its hosted Service, letting teams run Workers against a managed Server and database instead of operating the four-service Server themselves.
2021 Feb
OpenAPI 3.1 aligned its Schema Object with JSON Schema draft 2020-12 and added webhooks. HTTP API contracts could express schema constraints with closer alignment to the wider JSON Schema ecosystem.
2021 Feb 15
OpenAPI 3.1 aligned its schema vocabulary more closely with JSON Schema, affecting how API contracts express instance constraints.
2021 May
The order required federal civilian agencies to plan for zero trust architecture. The directive made implementation an accountable government program rather than only an architectural recommendation.
2021 Jun
The release documented further development of Pulsar as a unified messaging and streaming platform.
2021 Jul
RabbitMQ introduced Streams as a persistent, replicated data structure with non-destructive consumption. The addition made replay-by-offset an explicit alternative to removal-oriented work queues.
2021 Jul
A new append-only, replay-by-offset, replicated log model landed alongside classic and quorum queues, aimed at high-throughput fanout and replay use cases that pop queues handle poorly.
2021 Jul 13
Google described replication-based VM migration with test clones, migration groups, and cutover. Testable replication and grouped execution became part of the service workflow.
2021 Sep
Kafka 3.0 advanced the built-in KRaft consensus mechanism intended to replace ZooKeeper, moving metadata management into Kafka's own architecture.
2021 Sep
Kafka 3.0 introduced KRaft metadata and API improvements while the mode was still not recommended for production. Operators began planning for a controller model without ZooKeeper.
2021 Oct
gRPC libraries gained a built-in xDS client, so a control plane such as Istio could configure routing, load balancing, and mutual TLS for gRPC clients directly, without an Envoy sidecar next to every workload.
2022
Terrastruct releases D2, a modern diagram scripting language with improved auto-layout and a focus on developer ergonomics. It advances the diagram-as-code category by treating layout as a first-class concern rather than an afterthought.
2022
JetStream's key-value store and object store arrived as higher-level abstractions on streams and consumers, letting applications use NATS as a replicated KV or chunked-object store without a separate system.
2022 Jan
Memorandum M-22-09 set goals across identity, devices, networks, applications and workloads, and data. Agencies received concrete outcomes for translating the architecture into programs and controls.
2022 Mar
RabbitMQ 3.10 added an opt-in at-least-once dead-letter strategy for quorum queues. It changed dead-letter transfer from a potentially lossy route into a retrying route when the target is temporarily unavailable.
2022 Apr
The 2.10 release extended the established 2.x line before the next major version.
2022 Apr
The 10th Edition reorganized TOGAF into a modular structure with expanded guidance for tailoring.
2022 Apr
The 10th Edition split the standard into Fundamental Content and TOGAF Series Guides, separating enduring concepts from configurable practice and adding guidance for agile enterprises.
2022 May
Envoy Gateway focused Envoy's ecosystem on north-south API gateway traffic.
2022 May
Kubernetes 1.24 removed dockershim from kubelet. Runtime integration became an explicit cluster design and migration concern.
2022 Jul
Super streams partition a single logical stream across several stream instances for throughput beyond one node, with single-active-consumer support across partitions.
2022 Sep
The second reference architecture organized capabilities and activities for mission systems. It expanded the operational relationships around identity, devices, applications, data, networks, analytics, and automation.
2022 Sep
Istio announced ambient mode, replacing per-pod sidecars with a node-level ztunnel for L4 mTLS and optional waypoint proxies for L7. It directly addressed the sidecar resource and operational cost that had slowed mesh adoption.
2022 Oct
Kafka 3.3 marked KRaft production ready for new clusters. The guidance still distinguished new deployments from migration of existing ZooKeeper-based clusters.
2022 Oct
Kafka 3.3.1 documented KRaft mode as production ready for new clusters, making controller and broker role design a standard operational concern.
2022 Nov
The strategy connected department-wide adoption, secured systems, technology acceleration, and enabling processes to a target implementation roadmap.
2023
Excalidraw, the freehand collaborative sketching tool, acquires tldraw. The merger consolidates the low-fidelity sketching category and validates freehand diagramming as a distinct phase in the diagramming workflow, complementary to formal diagram-as-code tools.
2023
Istio graduated from the CNCF incubator, marking the project as mature and widely adopted. It confirmed the service mesh category as a standard part of the cloud-native stack rather than an experiment.
2023
GitHub adds native rendering support for Mermaid diagrams in Markdown files. Diagram-as-code diagrams in pull requests, issues, and documentation can now be rendered by the platform itself, removing the need for external rendering plugins.
2023 Feb
Kafka 3.4 added early-access migration from ZooKeeper to KRaft. The feature was intended for testing rather than production use at that point.
2023 Feb
Kafka 3.4 added the migration path from ZooKeeper mode to KRaft mode, turning the architectural transition into an upgrade-planning concern for existing clusters.
2023 Feb
A research report quantified the network rounds and durable log writes on the two-phase commit critical path. It kept protocol overhead and fault behavior in active design discussion.
2023 Mar
Pulsar entered the 3.x release line, marking a new major-version baseline for users and operators.
2023 Apr
The model defined traditional, initial, advanced, and optimal stages across five pillars and three cross-cutting capabilities. It gave operators a progression for automation, visibility, and integrated policy.
2023 Jun
Editions replace the fixed choice between proto2 and proto3 syntax with a per-file edition number and individually selectable features. It changes how the behavior of a gRPC schema evolves over time.
2023 Aug 4
The TypeScript SDK hit a stable 1.0.0, extending first-class, production-supported Workflow and Activity authoring to the JavaScript ecosystem alongside the existing SDKs.
2023 Sep
The publication adapted zero trust access control to cloud-native applications across multiple clouds. It added identity-tier and network-tier policies, service meshes, and gateways to the implementation vocabulary.
2023 Dec 5
AsyncAPI 3.0 updated the event API description model, keeping message-driven interfaces in the same contract-first design conversation as HTTP APIs.
2024
Cilium and eBPF-based dataplanes became a mainstream mesh alternative, moving L4 identity and policy into the kernel and skipping the userspace proxy entirely. It opened the question of whether a mesh needs a proxy at all.
2024
NATS was positioned for agentic AI — agent-to-agent communication with automatic service discovery and multi-region GPU inference routing. It reframed the subject-based model as a fit for LLM tool calls and event streams, work the original 2011 system was not designed for.
2024 Mar
The maintained 3.0 line continued with a published stable release in 2024.
2024 Aug
4.0 made AMQP 1.0 a first-class protocol rather than a plugin, reworked quorum queue features, and began the transition toward Khepri as the metadata store, retiring legacy assumptions from the 3.x line.
2024 Sep
With the v1.25.0 server line, Workflow Update — a message that sends input, runs handler logic, and returns a result — no longer required manual enabling, making synchronous request-response a standard way to interact with a running Workflow.
2025
The Kubernetes Gateway API became the default way to configure ingress and mesh-adjacent gateways across implementations, standardizing the edge configuration this course separates from the east-west mesh.
2025 Mar
Kafka 4.0 became the first major release to operate entirely without ZooKeeper and made KRaft the default mode.
2025 Apr
The CNCF published a commitment to protecting NATS and the integrity of the open-source project, addressing governance concerns as the Synadia commercial relationship evolved. It reaffirmed the project's neutral stewardship home.
2025 Sep
Team RabbitMQ published the roadmap for making Khepri, a Raft-based metadata store, the default in place of Mnesia, removing a long-standing cluster-recovery hazard.
2026
Istio's ambient mode reached general availability, making the sidecarless data plane the recommended path for new deployments and the sidecar the legacy option for complex L7 needs.
2026
The 2.14 release carried clustering, JetStream, leaf nodes, MQTT, and WebSocket as configuration on the same single nats-server binary, consolidating the protocol surface the project had accumulated into one process.